情報:IT
高校生
解決済み

この問題の解説をしていただけませんか🙇🏻‍♀️
この問題なのですが、なぜ破線の部分は31になるのでしょうか。よろしくお願いいたします。

Q6 1~39 の範囲で整数の入力を促し、 その数 字を表示するとともに、 その数が3の倍数、 か 30 台ならば、 当たりと表示せよ。 n=int(input('1~39 の整数を入力>>) print(n) ifn%3==0orn>=31: 00print(当たり? G
プログラミング python 情報

回答

✨ ベストアンサー ✨

おそらく疑問に思われているのは、
破線の部分が30でなく31になっている。
ということでしょうか。

これは、簡単に説明すると、
プログラムの処理効率を良くする為です。
nが28,29,ときて30のとき、
前半の3で割って余り0に該当します。

なので、わざわざ30以上という後半の
条件を書く必要がないため、
30ではなく31としています。

なお、このif文の処理は複雑ですが、
条件の判定演算子(or, %, ==, >=など)は、
全て優先順位が決まっています。

なので、処理の無駄を省き最適化する為、
とも考えられます。

Chitose

納得できました🙇🏻‍♀️՞
ありがとうございました。

この回答にコメントする
疑問は解決しましたか?

この質問を見ている人は
こちらの質問も見ています😉