PAT1022 D进制的A+B
题目
输入两个非负 10 进制整数A和B(≤230−1),输出A+B的D(1<D≤10)进制数。
输入格式
输入在一行中依次给出 3 个整数A、B和D。
输出格式
输出A+B的D进制数。
输入样例
输出样例
思路
算出加法后,进制数装换。用除法模拟手算。余数因为倒过来,所以可以用栈,数组也行。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #include <stdio.h> #include <stack> using namespace std; int main(int argc, char const *argv[]) { int a, b, d; stack<int> s; scanf("%d %d %d", &a, &b, &d); a += b; if (!a) { printf("0\n"); } int yu = 1; while (a) { yu = a % d; a /= d; s.push(yu); } for (int i = 0; !s.empty(); i++) { printf("%d", s.top()); s.pop(); } return 0; }
|