文章
5
粉丝
65
获赞
1
访问
4.6k
先对输入的数字进行反转,再使用gcd算法求公约数即可。
数字反转处理:
用一个临时变量存储第一个数字,使用%10来获得第一个数字
然后进行进位相加:res=res*10+a即可
最后还需要对x/=10操作,获取后几位数字
gcb求最大公约数:
递归求解 return b?gcd(b,a%b):a
#include <bits/stdc++.h>
using namespace std;
int reverse(int x) { // 反转函数
int res = 0;
while (x) {
int a = x % 10;
res = res * 10 + a;
x /= 10;
}
return res;
}
int gcd(int a, int b) {
return b ? gcd(b, a % b) : a;
}
int main() {
int a, b;
cin >> a >> b;
a = reverse(a);
b = reverse(b);
cout << gcd(a, b);
return 0;
}
登录后发布评论
暂无评论,来抢沙发