gpt4 book ai didi

Java 如何在方法的变量进入方法的第一次递归之前输出其初始值?

转载 作者:行者123 更新时间:2023-12-01 23:05:08 25 4
gpt4 key购买 nike

关于如何打印经典阶乘递归中使用的初始变量有什么想法吗?这是我所拥有的。

public class factorial{
public static void main(String[] args){
System.out.println("Output:" + initialN(factorial(4)));
System.out.println("Answer:24");
}

public static int factorial(int n){
if(n == 1){
return 1;
}
else{
return n*(n-1);
}
}

public static int initialN(int n){
int init = n;
System.out.println("N:" + init); return init;
}
}

现在我的输出如下所示:

N:24
Output:24
Answer:24

但我试图让它在进入阶乘方法的第二次迭代之前仅显示 n 最初的值。所以 N 应显示为 4,而不是 24。提前致谢。

最佳答案

您只需更改这一行:

System.out.println("Output:" + factorial(initialN(4))); 

您应该在阶乘内部调用 initialN(),因为这些方法是从内部然后向外执行的。

作为旁注,我会这样写:

public static int factorial3(int num){ 
if(num == 0)
return 1;
else{
if(i==0) \\ i is global variable initialized to zero
System.out.println("N:" + num);
i++;
return num * factorial3(num-1);
}
}

并这样调用它:

System.out.println(factorial3(4));

关于Java 如何在方法的变量进入方法的第一次递归之前输出其初始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899257/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com