竞赛讨论区 > 更相减损术
头像
0x8023
发布于 2019-09-02 09:43
+ 关注

更相减损术

#include <iostream>
using namespace std;

int gcd(int a, int b) {
    if (a==b)
        return a;
    if (a < b)
        return gcd(b,a);
    else {
        if ((a&1)==0 && (b&1)==0) //都是偶数
            return gcd(a>>1, b>>1)<<1;
        if ((a&1)==0 && (b&1)!=0)
            return gcd(a>>1, b);
        if ((a&1)!=0 && (b&1)==0)
            return gcd(a, b>>1);
        else 
            return gcd(b, a-b);
    }
}

int main() {
    int a,b;
    cin >>a>>b;

    cout <<gcd(a,b);


    return 0;
}

全部评论

(0) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐