本題要求計算 a/b,其中 a 是不超過 1000 位的正整數,b 是 1 位正整數。你需要輸出商數 q 和餘數 r,使得 a=b×q+r 成立。
輸入在一行中依次給出 a 和 b,中間以 1 空格分隔。
在一行中依次輸出 q 和 r,中間以 1 空格分隔。
123456789050987654321
7
17636684150141093474
3
首先分析,這個題是1000位所以不能直接計算,我們可以按照人類的計算習慣來計算除法,這個時候讀入數字就應該是用字元陣列來讀入較為方便。
讀入陣列後按照人類的計算習慣,夠除就算餘數,並把結果存入商的陣列中。餘數在借位繼續計算。
坑總結:編譯過後測試點1一直通不過,經過除錯發現,如果被除數就一位,而且小於被除數的時候就會得出錯誤的答案,經過修改後,把這種情況單獨輸出就好。
#include
#include
intmain()
//所以後來檢查發現當被除數就只有一位的時候會導致結果錯誤。
else}if
(i==1)
else
printf
(" %d"
,lo)
;//輸出餘數
}return0;
}
1017 A除以B (c語言)
本題要求計算 a b,其中 a 是不超過 1000 位的正整數,b 是 1 位正整數。你需要輸出商數 q 和餘數 r,使得 a b q r 成立。輸入格式 輸入在一行中依次給出 a 和 b,中間以 1 空格分隔。輸出格式 在一行中依次輸出 q 和 r,中間以 1 空格分隔。輸入樣例 12345678...
(PAT乙級)1017 A除以B(C語言實現)
總結 1 i 0的情況和其他時候不一樣,可以在迴圈體之前就單獨執行,不需要放到迴圈體裡做判斷語句。2 模擬手動除法的過程,每次用第一位去除以b,如果得到的商不是0就輸出,否則就 10 下一位,直到最後的數為餘數。即每得到一位商都直接輸出,不需要存在陣列裡在統一輸出,因為這樣既麻煩又容易出錯。3 有乙...
1017 A除以B C C 實現
1017 a除以b 20 分 本題要求計算 a b,其中 a 是不超過 1000 位的正整數,b 是 1 位正整數。你需要輸出商數 q 和餘數 r,使得 a b q r 成立。輸入在一行中依次給出 a 和 b,中間以 1 空格分隔。在一行中依次輸出 q 和 r,中間以 1 空格分隔。12345678...