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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
全部评论

相关推荐

10-30 19:23
已编辑
山东大学(威海) C++
牛至超人:其实简历是不需要事无巨细的写的,让对方知道你有这段经历就行了,最重要的是面试的时候讲细讲明白
点赞 评论 收藏
分享
LZStarV:冲就好了,就算真的是字节也冲,面评脏了大不了等三四个月就淡了,而且等到那个时候实力进步了选择还多,何必拘泥于字节
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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