回答編集履歴
2
追記
answer
CHANGED
@@ -28,4 +28,16 @@
|
|
28
28
|
|
29
29
|
結果の配列が左右対称であることを考慮すれば、計算は 約 1/2 に減らすことができますが、
|
30
30
|
h が空数か奇数かで処理分岐をすることでコードが長くなってしまう気がしたので、
|
31
|
-
そのことは取り込んでいません。
|
31
|
+
そのことは取り込んでいません。
|
32
|
+
|
33
|
+
追記
|
34
|
+
数列が左右対称であることをして、足し算の回数を約按分にしてみました。
|
35
|
+
```ruby
|
36
|
+
def base_of_pascals_triangle(n)
|
37
|
+
return [1] if n == 1
|
38
|
+
|
39
|
+
prev = [0] + base_of_pascals_triangle(n - 1)
|
40
|
+
left = (0..((n - 1) / 2)).map { |x| prev[x] + prev[x + 1] }
|
41
|
+
left + left[0...(n / 2)].reverse
|
42
|
+
end
|
43
|
+
```
|
1
追記
answer
CHANGED
@@ -22,4 +22,10 @@
|
|
22
22
|
end
|
23
23
|
```
|
24
24
|
実行例
|
25
|
-

|
25
|
+

|
26
|
+
|
27
|
+
追記:
|
28
|
+
|
29
|
+
結果の配列が左右対称であることを考慮すれば、計算は 約 1/2 に減らすことができますが、
|
30
|
+
h が空数か奇数かで処理分岐をすることでコードが長くなってしまう気がしたので、
|
31
|
+
そのことは取り込んでいません。
|