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

PAT Basic1022 D進位制的A+B

連結:PAT Basic1022

輸入兩個非負 10 進位制整數 A 和 B (≤230-1),輸出 A+B 的 D (1<D≤10)進位制數。

輸入格式:

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

輸出格式:

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

輸入樣例:

123 456 8

輸出樣例:

1103


就是模擬10進位制轉其他進位制的轉換方法
不斷用sum=sum/D,並且取每次的餘數,直至sum==0,最後將所有餘數倒序輸出。


以下程式碼:

#include
<cstdio>
#include<stack> using namespace std; int main() { int A,B,D; while(scanf("%d%d%d",&A,&B,&D)!=EOF) { int sum=A+B; stack<int> ans; //可以用棧來倒序輸出 if(sum==0) //注意對sum一開始就是0的情況特判 printf("0"); else { while(sum!=0) //處理 { ans.push(sum%D)
; sum/=D; } while(!ans.empty()) //輸出 { printf("%d",ans.top()); ans.pop(); } } printf("\n"); } return 0; }