【发布时间】:2018-04-09 16:11:22
【问题描述】:
我在理解 Java 中的堆栈和操作顺序时遇到了一些问题。如果我有以下情况:
operation(7, 2)
public int operation(int x, int y) {
if (x == y)
return 0;
else
return operation(x – 1, y) + 2;
}
结果会怎样?有人告诉我它应该是一个数字结果,但我不明白 (x – 1, y) + 2 怎么可能是一个数字。我已经得到它:
(x – 1, y) + 2
(7 - 2, 2) + 2
(5, 2) + 2
但我不明白最后添加2的方法。这不需要返回用逗号分隔的两个值吗?
【问题讨论】:
-
您的意思是“单个数字”而不是“单个数字”?它必须是单个数字结果,因为结果是 int。 (我也不明白为什么它会是个位数)
-
递归公式实际上是
2*(x-y)其中x >= y(如果x