IndexError: list index out of rangeのエラーが修正できません
python3で勉強のため大きな数字を扱うための下記のプログラム記述しました。
(2^256を計算するプログラム)、python3では、変数の型がなく、C言語でいうlonglong型以上を扱えるため、このようなプログラムを書かずに良いのですが、後学ために、このようなプログラムを書いてみました。
手順としては、C言語でまず試してみて、上手く動作をしたのを確認して、python3に移植したのですが、IndexError: list index out of rangeのエラーが出て、上手くいきません。
発生している問題・エラーメッセージ
エラーメッセージ
Traceback (most recent call last):
File "2-256_2.py", line 5, in <module>
IndexError: list assignment index out of range
a[0] = 2 の行
該当のソースコード
#1次元配列を78桁分用意して、各配列変数には1桁しか入らないようにし,2の256乗を計算する
import sys
def main():
-
a = []
-
a[0] = 2 # a[0]の初期値
-
for j in range(1,77): # a[1]~a[77]の初期値
-
a[j] = 0
-
for i in range(255): # iが0から254繰り返す(255回)
-
for j in range(0,77): # jが0から77まで繰り返す(78回)
-
a[j] = a[j] * 2 # 各桁に2を掛ける
-
for j in range(0,77): # jが0から77まで繰り返す(78回)
-
if (a[j] >= 10): # 各桁の数値が溢れたら(10以上なら)
-
a[j+1] = a[j+1] + a[j] / 10 # 1つ上の桁に繰り上げ
-
a[j] = a[j] % 10 # 1桁目の剰余を残す
-
else:False
-
for j in range(77,0): # jが77から0まで繰り返す(78回)
-
print(a[j]) # 各桁を表示
if name == 'main': main()
試したこと
最初のa[]をa{}に変更
補足情報(FW/ツールのバージョンなど)
rasberrypi3B+を使用


回答2件
あなたの回答
tips
プレビュー