版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37454852/article/details/85725047
1022 D进制的A+B (20 分)
输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
#include <cstdio>
#include <cstring>
#include <cmath>
int main()
{
int A = 0, B = 0, C = 0, D = 0;
scanf("%d %d %d", &A, &B, &D);
C = A + B;//C存放AB之和
if(!C) printf("0");//和为0单独考虑,直接输出;有个测试用例就是这个坑,让我跳进去了
int S[50] = { 0 };//辅助栈
int top = -1;//栈顶指针
while (C)//D进制放入栈
{
S[++top] = C % D;
C /= D;
}
while (top >= 0) printf("%d", S[top--]);//打印输出
return 0;
}