PAT (Basic Level) Practice (中文) 1022 D进制的A+B (20 分) (C++)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}

猜你喜欢

转载自blog.csdn.net/m0_37454852/article/details/85725047
今日推荐