divmod と大きな整数
次のコードを実行したときの出力として、正しいものを1つ選べ。
print(divmod(-7, 2), 2 ** 100 > 10 ** 30)
- A
(-3, -1) True - B
(-4, 1) True - C
(-4, 1) False - D
(-3, 1) True
正解と解説を見る
正解:B
divmod(a, b) は (a // b, a % b)。Python の整数は任意の大きさ(多倍長)で、桁あふれしない。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `print(divmod(-7, 2), 2 ** 100 > 10 ** 30)` | — |
| 結果 | 実際の出力 | (-4, 1) True |
- A
誤り。商は切り捨てで −4、余りは除数と同じ符号。
- B
正しい。
divmodは(商, 余り)。負の数の商は小さい方へ切り捨てられる。Python の整数は桁数に制限がない。 - C
誤り。2¹⁰⁰ は約 1.27×10³⁰ で、10³⁰ より大きい。
- D
誤り。商は −4。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。