首页 > 其他 > 详细

B1022 D进制的A+B

时间:2017-08-09 11:09:25      阅读:226      评论:0      收藏:0      [点我收藏+]
 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

原文:http://www.cnblogs.com/z-712/p/7324030.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!