B1022 D进制的A+B

Posted 浅忆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于B1022 D进制的A+B的主要内容,如果未能解决你的问题,请参考以下文章

B1022

PAT乙级 1022. D进制的A+B (20)

[PAT乙级]1022 D进制的A+B

PAT B1002 D进制的A+B

乙_1022 D进制的A+B (20分)

乙_1022 D进制的A+B (20分)