全部评论
把a用字符数组存起来,从后往前,每次取18位,转成long long类型的数字再对b取模得到x,然后再取18位转数字+x后对b取模得到新的x。最终a将成为一个long long类型的数字,接着再辗转相除法求***,不知道这样理解正确吗。
while a%b!=0: a, b=b, a%b. return b
这道题的重点在哪里?是使用辗转相除法来实现?
同样求解答
今天是网易互娱还是网易互联网啊。。
#include <iostream>
using namespace std;
char s[100005];
long long gcd(long long a, long long b)
{ return a % b == 0 ? b : gcd(b, a % b);
}
int main()
{ scanf("%s", s + 1); long long a; cin >> a; long long b = 0; for (int i = 1; s[i] != '\0'; i++) { b = (b * 10 + s[i] - '0') % a; } cout << gcd(b, a); return 0;
}
这是某大佬粘出来的代码,不是很懂~~
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
12-14 19:57
湖南软件职业技术大学 软件测试 dachang盒子:26届秋招必须有实习经历,建议找个实习过度下,同时项目重复率也比较高没有什么难点亮点,我这里有大厂真实的项目可以提供给你学习也可以给你包装大厂实习来提高你的竞争力,感兴趣的话可以私信我或者点我主页简介
点赞 评论 收藏
分享
