B1022 D进制的A+B

 1 /*
 2 题目描述
 3 输入两个非负十进制整数A和B(<=2^30-1)以及D(进制数),
 4 输出A+B的D(1 < D <= 10)进制数。
 5 
 6 输入格式
 7 在一行中依次给出三个整数A, B和D(进制数)。
 8 
 9 输出格式
10 A+B的D进制数
11 
12 输入样例
13 123 456 8
14 
15 输出样例
16 1103
17 
18 思路
19 先计算A+B(此时为十进制),然后把结果转换为D进制,
20 而十进制转换为D进制的过程可以直接进行“除基取余法”。
21 */
22 
23 #include <iostream>
24 #include <stdio.h>
25 using namespace std;
26 
27 int main()
28 {    int a,b,d;
29     scanf("%d%d%d",&a,&b,&d);
30     int sum=a+b;
31     int ans[31],num=0;    //ans存放D进制的每一位
32     do{                    //进制转换
33         //t=sum%d;
34         //printf("%d",t);
35         ans[num++]=sum%d;
36         sum/=d;
37     } while (sum!=0);  //num最终等于4
38     for(int i=num-1;i>=0;i--)   //从高位到低位进行输出
39         printf("%d",ans[i]);
40     return 0;
41 }
原文地址:https://www.cnblogs.com/z-712/p/7324030.html