teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2019/06/12 09:23

投稿

LouiS0616
LouiS0616

スコア35678

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

追記

2019/06/12 09:23

投稿

LouiS0616
LouiS0616

スコア35678

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