質問内容
リンク内容の1からnまでの数字において、2で割れる回数が一番多い数字を出力する問題で、自分は1からnではなく、大きい順のほうが早いと考え、nから1と逆順でfor文とif文を用いて探しました。
数字をbin()により0bにし、nから1の数字はbin()すると0b1になるので、それ以降の数字が0の場合、2の倍数となり、大きい順で探しているので、その数字をprint()で出力するコードを書きました。
質問は下のコードで入力してもなにも出力されないことです。
python
1n =int(input()) 2 3for i in reversed(range(1,n+1)): #i = n~1 4 5 if bin(i)[3:]==0: #ob1~以降の数字が0か判別する 6 print(i) 7 exit() 8 9 10 11 12
試したことは下のコードで上のif文を再現して実行したり、0b1~が出力されるかを試しましたがわかりません。ご教授お願い致します。
python
1if bin(4)[3:]==0: 2 print('yes') #出力なし 3 4 5 6print(bin(4)[3:]) #00
環境
vscode
python3.9.5
windows10home
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。