输入 a 和 b , 请返回 a 和 b 的最大公约数。
数据范围:
进阶:空间复杂度
,时间复杂度 )
3,6
3
8,12
4
a和b的范围是[1-109]
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 求出a、b的最大公约数。
* @param a int
* @param b int
* @return int
*/
int gcd(int a, int b ) {
// write code here
return a ? gcd(b%a,a):b;
} /**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 求出a、b的最大公约数。
* @param a int
* @param b int
* @return int
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int gcd(int a, int b ) {
// write code here
int t,c;
if(a<b){
t=a;
a=b;
b=t;
}
c=a%b;
while(c!=0){
a=b;
b=c;
c=a%b;
}
return b;
} int gcd(int a, int b ) {
// write code here
int max=0,min=0,ret=0,i=0;
if(a>b){
max=a;
min=b;
}else{
max=b;
min=a;
}
if(b%a==0){
ret=min;
}else{
for(i=0;i<min;i++){
if(max%(min-i)==0 && min%(min-i)==0){
ret=min-i;
break;
}
}
}
return ret;
}