码迷,mamicode.com
首页 > 其他好文 > 详细

PAT-进制转换-B1022 D进制的A+B (20分)

时间:2020-03-02 22:24:25      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:lan   strong   代码   语句   return   namespace   依次   进制转换   turn   

题目描述:

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

输入格式:

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

样例:

  输入:123 456 8

  输出:1103

 

思路:

  先计算A+B的值,然后再将其转换为D进制。可使用“除基取余法”。

 

注意点:

  1. A+B的范围在int范围内
  2. 最好使用do···while语句。使用while语句要特判A+B等于0的情况
  3. 存储A+B%D的数组要从高位到低位进行输出

 

代码:

技术图片
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int a, b, z;//题目数据正好在int范围内
 7     int datas[40] = { 0 };//存储D进制的每一位数
 8     int d, num = 0;
 9 
10     scanf("%lld %lld %d", &a, &b, &d);
11     
12     z = a + b;
13 
14     //进行进制转换
15     do
16     {
17         datas[num++] = z % d;
18         z /= d;
19     } while (z != 0);
20 
21     //对D进制数进行输出,从高位到低位
22     for (int i = num - 1;i >= 0;i--)
23     {
24         printf("%d", datas[i]);
25     }
26 
27     return 0;
28 }
View Code

 

参考书籍-《算法笔记》-胡凡

PAT-进制转换-B1022 D进制的A+B (20分)

标签:lan   strong   代码   语句   return   namespace   依次   进制转换   turn   

原文地址:https://www.cnblogs.com/fangzhiyou/p/12398307.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!