我正在尝试将我的Mod结果打印出来,但它做了一些奇怪的事情?有谁知道它为什么以倒计时方式打印?
这是我的驱动程序类:
import java.util.Random;
public class gcdTest {
public static void main(String args[]){
Random number = new Random();
int x = number.nextInt(10);
int y = number.nextInt(10);
System.out.println("This is it x "+x+ "and y "+ y);
gcdR.gcdRecursive(x, y);
//gcdI.gcdIterative(x, y);
}
}
这是我的方法类
public class gcdR {
static int gcdRecursive(int x, int y){
if (y == 0){
return x;
}else{
int z = (x % y);
System.out.println("The mod"+z);
return gcdRecursive(y, (z));
}
}
注意: 我得到像这样的打印声明
This is it x 7 and y 8
The mod 7
The mod 1
The mod 0
为什么我的代码不仅仅是打印出来
This is it x 7 and y 8
The mod 7
答案 0 :(得分:0)
当您递归调用gcdRecursive
时,您的参数的顺序为y
,然后是z
,这意味着在您的示例中,计算结果如下:
因此,每次计算mod直到y
为0,在这种情况下递归停止。