小遣いの話です。
1月に1円、2月には2倍の2円、3月にはその倍の4円のように、毎月、前の月の倍の小遣いがもらえるとして、年の終わりには合計いくらになっているでしょうか? Pythonで計算してみましょう。
2種類のpython例を挙げます。
(1)if 分を使わないために、計算は13月分までしますが、print文を計算式より先に置いて12月分までしかプリントしません。
tuki = 1
goukei = 1
print("月", "月の小遣い", "その月までの合計")
for i in range(0,12):
print(i+1, tuki, goukei)
tuki *= 2
goukei += tuki
(2)べき乗の演算子を使った例です。べき乗とは xyxy
のようにあらわされるもので、ここでは、2i2i を使っています。ii がゼロの時に 答えは 1 になります。
goukei = 0
print("月", "月の小遣い", "その月までの合計")
for i in range(0,12):
tuki = 2**i
goukei += tuki
print(i+1, tuki, goukei)
一休さんのお米の話と同じ方法で小遣いをもらう例のfor文とif分を組合わせた例です。
最初の月だけ、tuki と goukei に答えの分かっている 1を入れます。それ以降の月は else の下の分を実行します。
print("月", "月の小遣い", "その月までの合計")
for i in range(0,12):
if i == 0:
tuki = 1
goukei = 1
else:
tuki *= 2
goukei += tuki
print(i+1, tuki, goukei)