PAT-乙级-1022 D进制的A+B

输入两个非负 10 进制整数 A 和 B (230​​1),输出 A+B 的 D (1<D10)进制数。

输入格式:

输入在一行中依次给出 3 个整数 A、B 和 D。

输出格式:

输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103


分析:
  对于十进制转为N进制的具体过程不再阐述
  需要注意的是几个特例:
    需要转的数为0
    需要转为十进制,这时不需要操作,可直接返回原数



 1 //c++
 2 #include<iostream>
 3 using namespace std;
 4 
 5 int main(){
 6   long A,B,sum;
 7   int res[40]={0};
 8   int D;
 9   cin>>A>>B>>D;
10   sum=A+B;
11   if(sum==0){//这个是个特例,有一个测试点卡这个位置
12     cout<<0<<endl;
13     return 0;
14   }
15   if(D==10){
16     cout<<sum;
17     return 0;
18   }
19   int i=0;
20   while(sum){
21     res[i++]=sum%D;
22     sum/=D;
23   }
24   for(i--;i>=0;i--)
25     cout<<res[i];
26   return 0;
27 }
 
原文地址:https://www.cnblogs.com/tenjl-exv/p/9801290.html