public class collatzpow {
public static int collatz(int n) {
StdOut.print( n + " ");
if (n == 1) return 0;
if (n% 2 == 0) return collatz(n/2);
else return collatz(3*n + 1);
}
public static void main(String[] args) {
int n= Integer.parseInt(args[0]);
StdOut.println(collatz(7));
}
}
我想设置一个全局变量来计算程序调用递归的时间。我知道数字7叫它17次。
有人告诉我这很容易,但是我对此有点挣扎。
最佳答案
只需在类范围内声明一个静态int变量,并在每次调用该方法时递增即可。
public class collatzpow {
public static int count = 0;
public static PrintStream StdOut = System.out;
public static int collatz(int n) {
++count;
StdOut.print(n + " ");
if (n == 1) return 0;
if (n % 2 == 0) return collatz(n / 2);
else return collatz(3 * n + 1);
}
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
StdOut.println(collatz(7));
System.out.println(count);
}
}
关于java - 设置全局变量以计算递归,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33325580/