回答編集履歴
2
追記
test
CHANGED
@@ -71,3 +71,7 @@
|
|
71
71
|
[0, 5, 30, 155, 780]
|
72
72
|
|
73
73
|
```
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
**参考**: [itertools --- 効率的なループ実行のためのイテレータ生成関数 — Python 3.7.3 ドキュメント](https://docs.python.org/ja/3/library/itertools.html#itertools.accumulate)
|
1
追記
test
CHANGED
@@ -1,3 +1,31 @@
|
|
1
|
+
現状のコードを活かすなら、
|
2
|
+
|
3
|
+
毎度 5**i を計算するのではなく、直前にリストに追加した要素を参照すれば良いです。
|
4
|
+
|
5
|
+
```Python
|
6
|
+
|
7
|
+
def num(a):
|
8
|
+
|
9
|
+
li = [0]
|
10
|
+
|
11
|
+
for i in range(a):
|
12
|
+
|
13
|
+
po = li[-1] # liの末尾の要素
|
14
|
+
|
15
|
+
po += (5**(i+1))
|
16
|
+
|
17
|
+
li.extend([po]) # これは単に li.append(po) で良い。
|
18
|
+
|
19
|
+
return li
|
20
|
+
|
21
|
+
```
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
別解
|
26
|
+
|
27
|
+
---
|
28
|
+
|
1
29
|
先に5のn乗のリストを作っておいて、後から累積和を求めるのが楽でしょう。
|
2
30
|
|
3
31
|
```Python
|