基于他们在纸面上解决这个问题的方式:
http://www.wikihow.com/Find-the-Greatest-Common-Divisor-of-Two-Integers
我试图解决Java中最大的公约数,使用108作为m和30作为n。问题是,当我运行程序时,结果最终为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;
}
请你帮助我完成我需要完成的任务。我需要编写自己的代码而不是复制别人的代码。
答案 0 :(得分:1)
while(m!=n)
{
if(m >= n-1)
m = m-n;
else
n = n - m;
}
return m;
用于查找两个数字的gcd的非递归解决方案。