【发布时间】:2015-02-09 22:42:10
【问题描述】:
如果有人能向我解释我编写的这段代码与我认为它会产生的代码有什么不同,我会非常高兴。我编写代码试图证明int n 将是n = 4,所以在我的脑海和纸面上,我认为我的逐步结果如下:
-
4 * 4 + (3) = 19
-
3 * 3 + (2) = 11
-
2 * 2 + (1) = 5
-
1 * 1 + (0) = 1
-
返回 0
谁能告诉我为什么不是这样?并引导我完成递归步骤?
public static void main(String[] args) { Scanner kbd = new Scanner(System.in); int n; System.out.println("Enter a number: "); n = kbd.nextInt(); System.out.println("recursive value "+intValue(n)); } public static int intValue(int n) { int total; int x; if(n == 0) return 0; else total = n * n + intValue(n-1); System.out.println("Recursive total: "+total); return total; }
【问题讨论】:
-
您可以使用调试器自行完成。
-
您的 IDE 应该有一个“调试”模式,这将允许您逐行单步执行您的代码。
-
确保通过单击要停止的行来添加断点。
-
它说的是调试开始
-
1*1+0 = 1顺便说一句
标签: java if-statement recursion methods