B1022:D进制的A+B(20')

思路:辗转相除法。两个注意点:1.A,B范围没超int型(<=2^31-1),但是加起来可能会超,用long long型(<=2^63-1)。2.用do while,因为可能一上来就是0。

#include<stdio.h>
int main(){
    long long A,B;
    int D,i=0;
    int a[100];
    scanf("%lld%lld%d",&A,&B,&D);
    A=A+B;
    do{
        a[i++]=A%D;
        A=A/D;
    }
    while(A!=0);
    for(i=i-1;i>=0;i--){
        printf("%d",a[i]);
    }
    return 0;
}

二刷代码:

#include<stdio.h>
int main(){
    long long A,B;
    int D,a[100],i = 0;
    scanf("%lld%lld%d",&A,&B,&D);
    A = A+B;
    do{
        a[i++] = A%D;
        A /= D;
    }
    while(A != 0);
    for(i--;i >= 0;i--){
        printf("%d",a[i]);
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
全部评论

相关推荐

05-19 19:54
已编辑
杭州电子科技大学 Java
程序员小白条:《备考软考软件设计师》中级很简单的,不需要花很多时间,除非考软高,这简历找找杭州本地中小厂吧,也很难,项目这块还是最好有自己开发的思考,不要网上的亮点搬过来就行,看运气,本地有优势
点赞 评论 收藏
分享
04-15 09:59
门头沟学院 C++
yy_11:小公司人家没必要泄密,大公司都是本地部署了
你想吐槽公司的哪些规定
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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