3通りの方法で計算し、値を比較するようにしてみました。
xxx.py
python
1# 繰り返し計算
2def get_total_loop(n):
3 sum = 1
4 for i in range(2, n + 1):
5 sum += 2 ** (i - 1)
6 return sum
7
8# 再帰で計算
9def get_total(n):
10 if n == 1:
11 return 1
12 else:
13 return get_total(n - 1) + 2 ** (n - 1)
14
15
16# 漸化式を解いた結果で計算
17def get_total_c(n):
18 return 2 ** n - 1
19
20for i in range(1, 10):
21 print(str(get_total_loop(i)) + ", " +
22 str(get_total(i)) + ", " +
23 str(get_total_c(i)))
実行結果:
$ python xxx.py
1, 1, 1
3, 3, 3
7, 7, 7
15, 15, 15
31, 31, 31
63, 63, 63
127, 127, 127
255, 255, 255
511, 511, 511
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/12 15:18
2017/08/12 15:35
2017/08/12 15:40