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
分析:
這個題進製轉換最後得數巨大,所以還是開陣列來存,主要是進製轉換用do while();不能用while(){}因為一開始如果和為0的話就不會輸出0;十進位制內轉換主要還是。每次取餘數 存進陣列 就行;
**:
#includeint main()
while(sum != 0);
for(int j = i -1;j >= 0;j--)
printf("%d",ans[j]);
return 0;
}
PAT B1022 D進製的A B
輸入兩個非負 10 進製整數 a 和 b 2 30 1 輸出 a b 的 d 1輸入在一行中依次給出 3 個整數 a b 和 d。輸出 a b 的 d 進製數。123 456 81103 includeint res 32 int main while sum 0 for int j i 1 j 0...
進製轉換記錄,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 或許別人都比我懂得...