全部评论
把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;
}
这是某大佬粘出来的代码,不是很懂~~
相关推荐
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。
把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等 点赞 评论 收藏
分享
点赞 评论 收藏
分享

荣耀工作强度 440人发布
