[英]Finding the greatest common divisor
基於他們在紙上解決此問題的方式:
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;
}
請您幫助我完成我需要完成的工作。 我需要編寫自己的代碼,而不要復制別人的代碼。
while(m!=n)
{
if(m >= n-1)
m = m-n;
else
n = n - m;
}
return m;
查找兩個數字的gcd的非遞歸解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.