1. 程式人生 > >PAT (Basic Level) Practice (中文) 1022 D進位制的A+B (20 分) (C++)

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; }