【发布时间】:2014-09-01 16:10:20
【问题描述】:
根据他们在纸上解决这个问题的方式:
http://www.wikihow.com/Find-the-Greatest-Common-Divisor-of-Two-Integers
我正在尝试使用 108 作为 m 和 30 作为 n 来求解 Java 中的最大公约数。问题是,当我运行程序时,结果最终为 0。我知道我可以这样做,因为我自己编写了代码,但每次编写这样的方法时都会遇到一个绊脚石:
public static double getGcd_nr(int m, int n){
int dividend = m;
int divisor = n;
int quotient = dividend/divisor;
int remainder = dividend % divisor;
int gcd = 0;
for(int i = divisor * quotient + remainder; i > 0; i--){
dividend = divisor;
divisor = remainder;
if (remainder == 0){
gcd = divisor;
}
}
return gcd;
}
请你帮我完成我需要完成的事情。我需要编写自己的代码,而不是复制别人的代码。
【问题讨论】:
-
您是要重新计算
quotient和remainder吗?我假设是这样,因为dividend的(当前多余的)重新分配。你不是;重新分配dividend和divisor不是一回事。