输入 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; }