2 条题解
-
2
这道题目用碾转相除法,不知道的看这个: https://zhidao.baidu.com/question/156706020.html
代码如下
#include<bits/stdc++.h> using namespace std; long long a,b,c; int main() { cin>>a>>b; if(b>a) swap(a,b); do { c=a%b; a=b; b=c; }while(a%c!=0||b%c!=0); cout<<c; return 0; }
-
1
这道题可以用辗转相除或者辗转相减法
辗转相减:
#include<bits/stdc++.h> using namespace std; long long a,b,c; int i=0; long long gcd(long long x,long long y){ if(y==0)return x; if(x==0)return y; i++; return gcd(max(x,y)-min(x,y),min(x,y)); } int main(){ cin>>a>>b; cout<<gcd(a,b); return 0; }
辗转相除
#include<bits/stdc++.h> using namespace std; long long a,b,c,d,s; int i=0; long long gcd(long long x,long long y){ if(y==0)return x; return gcd(y,x%y); } int main(){ cin>>a>>b; cout<<gcd(a,b); return 0; }
- 1
信息
- ID
- 351
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 18
- 已通过
- 17
- 上传者