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

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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章