【发布时间】:2021-02-14 09:57:13
【问题描述】:
下面是一个接受 int 并返回 int 的函数。在函数内我调用函数本身,如果 i==1,我想退出我的函数。
基本上我正在尝试以递归方式计算阶乘。
代码片段
static int factorial(int i){
result = result * i;
if(i==1){
return 0;
}
factorial(i-1);
return 1;
}
注意 - result 是一个全局 int 变量并初始化为 1。
为什么这个函数返回 1 而不是 0。 [注意当 i==1 时,返回语句指针应该从函数中出来]
请不要发布更好的阶乘算法,我正在寻找 - 为什么这段代码的行为有点不同。
【问题讨论】:
-
result无处定义 -
@azro 注意 - 结果是一个全局 int 变量并初始化为 1。
-
我投票结束这个问题,因为 OP 应该花几周时间学习如何编写和调试 java。
-
投票结束,学生需要学习更好的调查策略。 ;)
标签: java