pat-B1022-D进制的A+B

题目链接->link

思路

  1. 10进制转换低进制用除数取余法,因为a+b不超过31位,所以用数组存储转换后的结果,再从高位输出到低位。
  2. 注意a+b=0时特判输出0。

代码

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <iostream>

using namespace std;

int main(){
    int a,b,d,sum;
    scanf("%d %d %d",&a,&b,&d);
    sum=a+b;
    int con[31],num=0;//con[31]记录进制转换后的数,num记录下标
    do{
        con[num++]=sum%d;
        sum/=d;
    }while(sum!=0);
    for(int i=num-1;i>=0;i--){//从高位输出到低位
        printf("%d",con[i]);
    }
    printf("\n");
    return 0;
}

发布了28 篇原创文章 · 获赞 1 · 访问量 583

猜你喜欢

转载自blog.csdn.net/MichealWu98/article/details/104296637