笔记
2024-08-10 19:17:17
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
/*/穷举法
int qiong(int x,int y){
int t=(x>y)?x:y;
for(int i=t;i>=1;i--){
if(x%t==0 && y%t==0){
return i;
}
}
}
/*/
/*/更相减损法
int jian(int x,int y){
int k=0;
while(x%2==0 && y%2==0){
x/=2;
y/=2;
k++;
}
if(x<y) swap(x,y);
while(true){
int p=x-y;
x=(p>y)?p:y;
y=(p<y)?p:y;
if(x-y==0){
return y*pow(2,k);
}
}
} /*/
/*/辗转相除法
int gcd(int x,int y){
if(x%y==0) return y;
return gcd(y,x%y);
}/*/
//stein 算法
int stein(int a,int b){
if(a==b){
return a;
}if(a==0){
return b;
}if(b==0){
return a;
}if(a%2==0 && b%2==0){
return 2*stein(a/2,b/2);
}if(a%2==0 && b%2!=0){
return stein(a/2,b);
}if(b%2==0 && a%2!=0){
return stein(a,b/2);
}if(a%2!=0 && b%2!=0){
return stein(abs(a-b)/2,min(a,b));
}
}
int main(){
int x,y;
cin>>x>>y;
cout<<stein(x,y);
return 0;
}
全部评论 2
潮水你快通过我微信!!!
2024-08-16 来自 浙江
0有意向加入我们团队吗?
https://www.acgo.cn/application/1691640415494422528
实力不限,对所有成员一视同仁2024-07-11 来自 浙江
0
有帮助,赞一个