1017 A除以B(C語言實現)

2021-10-04 00:05:13 字數 698 閱讀 6213

本題要求計算 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...