输入两个非负 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接着努力吧!!!