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

124 阅读1分钟

输入两个非负 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.了解取余的原理:

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接着努力吧!!!