輸入兩個非負 10 進製整數 a 和 b (≤230−1),輸出 a+b 的 d (1輸入在一行中依次給出 3 個整數 a、b 和 d。
輸出 a+b 的 d 進製數。
123 456 8
1103
#includeint res[32]=;
int main()while(sum!=0);
for(int j=i-1;j>=0;j--)
printf("%d",res[j]);
return 0;
}
1)輸出是從i-1到0的輸出,後來得到的餘數在高位(左邊,想象每得到乙個餘數就放進棧,最後在一起彈出,先彈出的在左邊)
2)用do while避免sum為0時直接跳出迴圈
3)申請較大的空間(非堆空間),在10的6次方以內,建議定義為全域性變數,靜態儲存區比程式棧空間大得多
4)在2的31次方即10的9次方,都可以用int
PATB 1022。 d進製的a b
1022 d進製的a b 20 分 輸入兩個非負 10 進製整數 a 和 b 2 30 1 輸出 a b 的 d 1輸入格式 輸入在一行中依次給出 3 個整數 a b 和 d。輸出格式 輸出 a b 的 d 進製數。輸入樣例 123 456 8 輸出樣例 1103 分析 這個題進製轉換最後得數巨大,...
進製轉換記錄,PAT B1022 D進製的A B
迴圈處理 其中的x是為p進製的數字,如二進位制10001之類的,product我暫時理解為權重,y為最終十進位制結果 while的每一輪取出x的最後一位數字乘上權重,然後加到y上,然後x自除10,product權重增加,這樣下一輪x 10又可以取到x當前的最後一位 int y 0,product 1...
PAT B1022 D進製的A B (C語言)
有乙個測試點要31數字 careful int arr d max d進製數用數組裝 intget arr d void print d int i 讀入a和b,並計算d intget arr d 輸出d 長度截止到陣列下表i void print d int i intmain 或許別人都比我懂得...