设x,y为非0奇数,有以下结论:
#include<bits/stdc++.h>
using namespace std;
#define LL long long
LL stein(LL a, LL b) {
if(!a) return b;
if(!b) return a;
if(!(a | 1) && !(b | 1)) return stein(a >> 1, b >> 1) << 1;
else if(!(a | 1)) return stein(a >> 1, b);
else if(!(b | 1)) return stein(a, b >> 1);
return stein(abs(a - b), min(a, b));
}
int main() {
while(1) {
LL a, b;
cin >> a >> b;
cout << stein(a, b) << "\n";
}
}

本文介绍了一种针对非零奇数的最大公约数(GCD)计算算法,使用递归方式实现,通过比较和位操作来高效求解两个奇数的GCD。此算法特别适用于计算机科学和数学领域中涉及奇数运算的问题。
917

被折叠的 条评论
为什么被折叠?



