java 用循环和递归求gcd(a,b)

java 用循环和递归求gcd(a,b),求两数的最大公约数,要完整程序,谢谢!

public int gcd(int a, int b) {
if (b != 0)
return gcd(b, a % b);
else
return a;
}

直接改了二楼的程序 呵呵
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-17
公约数的求法 正好可以用到递归
int gcd(a, b) {
if b!=0
return gcd(b, a mod b);
else
return a;
}
第2个回答  2009-03-17
public int gcd(int a, int b) {

for(int i=(a+b)/2;i>0;i--){
if(a%i==0&b%i==0)

return i;

}
return 1;
}
第3个回答  2009-03-17
好像没用到递归
public int gcd(int a, int b) {
for (; b != 0;) {
int temp = a;
a = b;
if (temp % b == 0) {
return b;
}
b = temp % b;
}
return 1;
}

java 用循环和递归求gcd(a,b)
public int gcd(int a, int b) { if (b != 0)return gcd(b, a % b);else return a;} 直接改了二楼的程序 呵呵

编一个程序,用递归函数 gcd(a,b)实现求两个整数 a,b 最大公因子的欧几...
int Gcd(int M,int N ){ int Rem;if(N!=0){ Rem = M % N;取余数,到最后一次是,必定是为0。Rem为0时的参数M值便是最大公约数。gcd(N,Rem);} return M;} 拿个简单的2,3来做例子。第一次运行GCD(2,3);3!=0==> rem=2%3=2。gcd(3,2);2!=0 ==> ...

辗转相除辗转相除法的计算机代码
function gcd(a, b) { if a mod b>0 return gcd(b, a mod b);else return b;} 此外,还可以使用循环方式实现这个算法。定义一个变量r,初始值为整数类型。在循环中,将a赋值给b,将a除以b的余数赋值给r。然后将b赋值给a,将r赋值给b。重复此过程直到b等于零。此时,a即为两个整数的最...

编写递归函数求两个正整数a和b的最大公约数
不想吐槽百度的排版。

用Python求最大公约数GCD(欧几里得算法)
Python中计算最大公约数(GCD)通常采用欧几里得算法,也称辗转相除法,这是一种在有限步骤内确定两个非负整数最大公约数的有效方法。该算法基于一个核心原理:两数的最大公约数等于较小数与两数相除余数的最大公约数,用公式表示为GCD(a, b) = GCD(b, a % b)。实现欧几里得算法的方法有两种主要...

gcd()的代码有谁知道?
return b==0?a:GCD(b,a%b);\/\/此处使用了递归,如果b=0,返回a为最大公约数,否则,一直以b与a%b赋给函数,实现辗转相除 } int main(){ int a, b ; \/\/定义实参a, b int answer ; \/\/定义最后结果 scanf ( "%d%d" , &a, &b) ; \/\/取a,b的值 answer = GCD (a, b) ; ...

辗转相除法的算法
自然语言描述用辗转相除法确定两个正整数 a 和 b(a≥b) 的最大公因数gcd(a,b):当a mod b=0 时gcd(a,b)=b,否则gcd(a,b) = gcd(b,a mod b)递归或循环运算得出结果伪代码这个算法可以用递归写成如下:function gcd(a,b) {if b<>0return gcd(b,a mod b);elsereturn a;}gcd ...

用欧几里得迭代算法求两个数的最小公倍数
用欧几里得算法算125和71的最小公倍数:设为a,b,先求出最大公约数gcd(a,b) 再用 lcm(a,b)= a*b\/ gcd(a,b);最大公约数用这个递归算法 对应过程 gcd(125,71) = gcd(71, 125%71) = gcd(71,54) =gcd(54,71%54) = gcd(54,17)=gcd(17,54%17)= gcd(17,3) =gcd(3,...

java中如何求两个数的最大公约数
方法一:(辗转相除法) 设用户输入的两个整数为n1和n2且n1>n2,余数=n1%n2。当余数不为0时,把除数赋给n1做被除数,把余数赋给n2做除数再求得新余数,若还不为0再重复知道余数为0,此时n2就为最大公约数。 例:gcd(20,8) 20=2*8+4 8=2*4 因此gcd(20,8)=4 代码实现:import javax...

pascal难题注意数据范围,好像要用到一个数学定理,非常感谢
这难题。。不就求个gcd0.0,只有没学过编程的说难的额 var a,b:qword;function gcd(a,b:qword):qword;begin if b=0 then exit(a); exit(gcd(b,a mod b)) end;begin read(a,b);write(gcd(a,b))end.

相似回答