题解 | 小红的 gcd

小红的 gcd

https://www.nowcoder.com/practice/9a5ac1e1c2fb4f8d85595a52ff0a00fa

先对大整数取模,再进行辗转相除法

#include <iostream>
#include<string>
using namespace std;

long long mod(const string&s,long long b){
    long long res=0;
    for(char c:s){
        res=(res*10+c-'0')%b;
    }
    return res;
}
long long gcd(long long a,long long b){
    while(b!=0){
        long long t=b;
        b=a%b;
        a=t;
    }
    return a;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    string a;
    long long b;
    cin>>a>>b;
    long long a_mod_b=mod(a,b);
    cout<<gcd(a_mod_b,b)<<endl;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

专业嗎喽:个人信息名字太大,合到电话邮箱那一栏就行,有党员写过党,剩下其他全删,站空太大了 把实习经历丰富,放最前面,然后是个人评价,技能之类的,然后是学校信息。项目经历最后面,可以就选一个自己擅长的。 现在是学校不是92就扣分的,没必要放前面。 然后现在看重实习经历>竞赛经历(校园经历)>课程项目经历
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务