前提・実現したいこと
AtCoder Beginners Selectionの問題について 問題番号:ABC081B→問題のページ
の解答におけるエラーの原因及び解決方法がわからない
発生している問題・エラーメッセージ
IndexError Traceback (most recent call last)
<ipython-input-44-c0e52b3f7928> in <module>
6 while z == 0:
7 for i in range(N):
----> 8 if (x[c])%2 == 0:
9 x[c] = (x[c])*0.5
10 else:
IndexError: list index out of range
というエラーがAnaconda JupyterLabでは表示され、AtCoderで提出してもエラーを吐くのみ。
上の8行目の条件式
該当のソースコード
Python3
1N = int(input()) #後に2で割る回数であり、要素の総数であるものを代入 2x = list(map(int, input().split())) #2で割っていく数のリストを入力 3c = 0 #要素の番号。これが下のとこでうまく代入されてないのか?わからない。 4y = x[0] #最初の数を 5z = 0 #これが1以上になるとリストの要素が全て2では割れないことを示す 6while z == 0: #Z=0 つまり要素が2で割れるあいだは繰り返す。2で割れないと下で+1される 7 for i in range(N):#要素の全てにおいて2で割り、割ったものを代入する。ただし、偶数のみ割る。奇数ならz=1となりwhileループが止まる。 8 if (x[c])%2 == 0: 9 x[c] = (x[c])/2 10 else: 11 z = z+1 12 c += 1 #要素を0から1,2,......,(N-1),Nまで1ずつ増やす 13else: 14 print(y/x[0]) #何回割れたかを示す
試したこと
同様のエラーについて調べたがよくわからなかった。
最初のNとxの入力は上手くいっていることは確かめた。while以下でエラーを吐く。
補足情報(FW/ツールのバージョンなど)
使用しているパッケージは最新版のPython Anaconda
初心者なので知識は不十分です。