我编写了一个算法来计算获得该数字所需的操作数量。但每次递归函数发生时,“temp”变量都会重置为0。
如何解决每次都不会重置并且包含计数值的问题?
public static int minOps(int x, int y) {
int temp = 0;
if (y <= x)
return temp;
if (y / 2 > x) {
temp++;
return minOps(x, y / 2);
} else {
minOps(x, y - 1);
temp++;
}
return temp;
}
最佳答案
通过完全消除 temp
(您不需要它)。就像,
public static int minOps(int x, int y) {
if (y <= x) {
return 0;
}
if (y / 2 > x) {
return 1 + minOps(x, y / 2);
}
return 1 + minOps(x, y - 1);
}
并使用大括号,即使它们是可选的。
关于java - 每次我运行这个递归算法时,我的变量都设置为 0 如何解决它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56083744/