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