字符串的最大公因子-LeetCode

1.辗转相除法-传送门https://baike.baidu.com/item/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E7%AE%97%E6%B3%95/1647675?fromtitle=%E8%BE%97%E8%BD%AC%E7%9B%B8%E9%99%A4%E6%B3%95&fromid=4625352&fr=aladdin

int gcd(int a,int b){//辗转相除法
    int x;
    x=a%b;
    while (x!=0){
        a=b;
        b=x;
        x=a%b;
    }
    return b;
}
int gcd_1(int a,int b){//更相减损法
    int cnt=0;
    int x,tmp;
    if(a==b) return a;
    while(a%2==0&&b%2==0){
        a/=2;
        b/=2;
        cnt++;
    }
    do{
        if(a<b){
            tmp=b;
            b=a;
            a=tmp;
        }
        x=a-b;
        a=b;
        b=x;
    }while(a!=x);
    return a*pow(2,cnt);
}

  

猜你喜欢

转载自www.cnblogs.com/hcxss/p/12482910.html
今日推荐