Dav*_*vid 1 java math recursion
下面的引号是我的实际作业,下面是我当前的代码.有人能指出我正确的方向.
编写一个名为multiplyEvens的递归方法,它返回前n个偶数整数的乘积.例如,multiplyEvens(1)返回2,multiplyEvens(4)返回384(因为2*4*6*8 = 384).如果传递的值小于1,则抛出IllegalArgumentException.
private static int multiplyEvens(int n)
{
if(n%2 == 0)
{
System.out.println(n*n);
return multiplyEvens(n*n);
// I'm lost
}
System.out.println();
return n;
}
Run Code Online (Sandbox Code Playgroud)
在纸上走过去.
从n = 1开始
1%2 = 1 so you don't do into your loop, and return value = 1 (wrong)
Run Code Online (Sandbox Code Playgroud)
试试n = 2
2%2 = 0, so you go into your loop and call multiplyEvens(2*2)
4%2 = 0, so you go into your loop and call multiplyEvens(4*4)
16%2 = 0 ...
Run Code Online (Sandbox Code Playgroud)
到现在为止,你应该开始弄清楚你的方法至少有一个问题......