1941 Problem A 又一版 A+B

問題 A: 又一版 A+B

時間限制: 1 Sec  內存限制: 32 MB

題目描述

輸入兩個不超過整型定義的非負10進制整數A和B(<=2^31-1),輸出A+B的m (1 < m <10)進制數。

輸入

輸入格式:測試輸入包含若干測試用例。每個測試用例佔一行,給出m和A,B的值。
當m爲0時輸入結束。

輸出

輸出格式:每個測試用例的輸出佔一行,輸出A+B的m進制數。

樣例輸入

2 4 5
8 123 456
0

樣例輸出

1001
1103

提示

注意輸入的兩個數相加後的結果可能會超過int和long的範圍。

經驗總結

因爲A+B有可能超出long的範圍,所以採用long long int進行存儲,進制轉換就是基礎的進制轉換,沒什麼好說的~~

AC代碼

#include <cstdio>
int main()
{
	int d;
	long long a,b;
	while(scanf("%d",&d)!=EOF)
	{
		if(d==0) break;
		scanf("%lld %lld",&a,&b);
		long long sum=a+b;
		int ans[40],num=0;
		do
		{
			ans[num++]=sum%d;
			sum/=d;
		}while(sum!=0);
		for(int i=num-1;i>=0;i--)
			printf("%d",ans[i]);
		printf("\n");
	}
	return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章