1. 程式人生 > >PAT 乙級 1022 D進位制的A+B

PAT 乙級 1022 D進位制的A+B

1022 D進位制的A+B (20 point(s))

輸入兩個非負 10 進位制整數 A 和 B (≤2​^30​​−1),輸出 A+B 的 D (1<D≤10)進位制數。

輸入格式:

輸入在一行中依次給出 3 個整數 A、B 和 D。

輸出格式:

輸出 A+B 的 D 進位制數。

輸入樣例:

123 456 8

輸出樣例:

1103

經驗總結:

emmm  最基礎的10進位制轉換為其他進位制,不懂的話可以參考《演算法筆記》3.5節~

AC程式碼 

#include <cstdio>

int main()
{
	int a,b,x;
	while(~scanf("%d %d %d",&a,&b,&x))
	{
		int z[40],num=0;
		int s=a+b;
		do
		{
			z[num++]=s%x;
			s/=x;
		}while(s!=0);
		for(int i=num-1;i>=0;--i)
			printf("%d",z[i]);
	}
	return 0;
}