1022 D进制的A+B (20 分)

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

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

输入格式:

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

输出格式:

输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103

题目分析:

1.用一个数sum=a+b

2.了解取余的原理:

0658b8fd64a14aa5b46ec46e61fa5ee1.png

3.用数组存取余数

4.从尾向头打印

PS:我在测试点三卡了很久,试了很多次,终于发现了测试点3卡的问题——sum<d,所以用do----while循环会比较好

代码如下:


C语言:


#include <stdio.h>
int main() {
  int a, b, d;
  scanf("%d%d%d", &a, &b, &d);
  int sum = a + b;
  int s[35] = {0};
  int i = 0;
  do {
    s[i++] = sum % d;
    sum /= d;
  } while (sum != 0);
  for (int j = i - 1; j >= 0; j--) {
    printf("%d", s[j]);
  }
}


C++:


#include <iostream>
using namespace std;
int main() {
  int a, b, d;
  cin >> a >> b >> d;
  int sum = a + b;
  int s[35] = {0};
  int i = 0;
  do {
    s[i++] = sum % d;
    sum /= d;
  } while (sum != 0);
  for (int j = i - 1; j >= 0; j--) {
    cout << s[j];
  }
}

PS:题目的难度不大,要想拿满分还是有一定的难度,xdm接着努力吧!!!

相关文章
进制学习3
进制学习3
47 1
【软考学习1】数据表示——进制转换,R进制转10进制 和 10进制转R进制
【软考学习1】数据表示——进制转换,R进制转10进制 和 10进制转R进制
241 0
【软考学习1】数据表示——进制转换,R进制转10进制 和 10进制转R进制
|
4月前
|
存储 测试技术
1024 科学计数法 (20 分)
1024 科学计数法 (20 分)
|
4月前
1022 D进制的A+B (20 分)
1022 D进制的A+B (20 分)
|
5月前
进制转换(m 进制 x 转换为 n 进制的数)
进制转换(m 进制 x 转换为 n 进制的数)
|
5月前
|
存储
leetcode:504. 七进制数
leetcode:504. 七进制数
31 0
|
人工智能
进制数转换知识点总结
二进制和十六进制 用0和1表示各种信息 计算机的电路由逻辑门电路组成。一个逻辑门电路可以看成一个开关,每个开关的状态是“开"(高电位)或“关”(低电位),即对应于1或0
150 0
一种基于质数(2、3、5、7、11…)的变进制数,第一位为2进制,第二位为3进制,第三位为5进制,以此类推。请将该变进制数转化为十进制数。
一种基于质数(2、3、5、7、11…)的变进制数,第一位为2进制,第二位为3进制,第三位为5进制,以此类推。请将该变进制数转化为十进制数。
158 0
一种基于质数(2、3、5、7、11…)的变进制数,第一位为2进制,第二位为3进制,第三位为5进制,以此类推。请将该变进制数转化为十进制数。