【发布时间】:2013-09-18 21:07:48
【问题描述】:
大家好,我有一些事情我的大脑很难弄清楚。 我的作业是养“x”个兔子。它递归地计算兔子耳朵的总数。 偶数的兔子有正常的两只耳朵,奇数的兔子有3只耳朵,但每5只兔子就有1只耳朵。我的代码已经完成并且可以工作了...在这里...
import java.util.*;
public class bunnies
{
public static int y;
public static void main(String[] args)
{
y = 0;
System.out.println(BunnyEars(3));
}
public static int BunnyEars(int x)
{
if ((x % 5) == 0 && x != 1 && x != 0)
return 1 + BunnyEars(x - 1);
else if ((x % 2) == 0 && x != 0 )
return 2 + BunnyEars(x - 1);
else if ((x % 2) != 0 && x != 0)
return 3 + BunnyEars(x - 1);
else
return 0;
}
}
我的问题是,世界上第一个耳朵如何累积到第二个耳朵等等? 我正在考虑为 int y = 0; 命名一个全局变量; 然后
if ((x % 5) == 0 && x != 1 && x != 0)
y += 1;
else if ((x % 2) == 0 && x != 0 )
y += 2;
else if ((x % 2) != 0 && x != 0)
y += 3;
else
return 0;
return y + BunnyEars(x -1);
我认为这更有意义,因为 y 正在累积,但事实并非如此。 你们能解释一下另一个是如何累积的而不是y吗? 谢谢!
【问题讨论】:
-
" 为 int y = 0 命名一个全局变量;" Java 没有全局变量。静态可能不是最好的主意。递归方法传递下一次调用需要的所有内容。
-
如果你的赋值是专门使用递归,你不应该使用“全局”变量。
-
@hexafraction 我认为“全局”是指类变量。
-
@DennisMeng 仍然不是这里的解决方案。
标签: java