質問編集履歴

3

内容修正

2018/05/09 06:21

投稿

Behemoth
Behemoth

スコア29

test CHANGED
File without changes
test CHANGED
@@ -1,29 +1,39 @@
1
1
  再帰関数でフィボナッチ数を生成するコードについてです。
2
-
3
-
4
2
 
5
3
  ```
6
4
 
7
- function factorial(n){
5
+ function fibonacci(num) {
8
6
 
9
- if(n == 2){
7
+ if (num <= 1) return 1;
10
8
 
11
- var ary = [0,1];
9
+ return fibonacci(num - 1) + fibonacci(num - 2);
12
10
 
13
- return ary;
11
+ }
14
12
 
15
- }else{
13
+ ```
16
14
 
17
- return factorial(n - 1).push(ary[n - 1] + ary[n - 2]);
15
+
18
16
 
19
- }
17
+ たとえば5を引数に取った場合、
20
18
 
21
- }
19
+ fibonacci(1)//return 1
22
20
 
23
- ```
21
+ fibonacci(2)
24
22
 
25
- フィボナッチ数の配列を作成する関数を書いてみたのですが、Uncaught TypeError: Cannot read property '1' of undefined 数字の1が数字として認識されていないようです。
23
+ fibonacci(3)
26
24
 
27
- Number(1)としてもだめでした。
25
+ fibonacci(4)
28
26
 
27
+ fibonacci(5)
28
+
29
- したらよろしでしょうか?
29
+ のよにスタックされてくと思います。
30
+
31
+
32
+
33
+ fibonacci(1)の時に1が返されると思うのですが、その次からの挙動がよくわかりません。
34
+
35
+
36
+
37
+
38
+
39
+ どなたか解説をお願いしますm(__)m

2

内容修正

2018/05/09 06:21

投稿

Behemoth
Behemoth

スコア29

test CHANGED
File without changes
test CHANGED
@@ -3,54 +3,6 @@
3
3
 
4
4
 
5
5
  ```
6
-
7
- function fibonacci(num) {
8
-
9
- if (num <= 1) return 1;
10
-
11
- return fibonacci(num - 1) + fibonacci(num - 2);
12
-
13
- }
14
-
15
- ```
16
-
17
-
18
-
19
- たとえば5を引数に取った場合、
20
-
21
- fibonacci(1)//return 1
22
-
23
- fibonacci(2)
24
-
25
- fibonacci(3)
26
-
27
- fibonacci(4)
28
-
29
- fibonacci(5)
30
-
31
- のようにスタックされていくと思います。
32
-
33
-
34
-
35
- fibonacci(1)の時に1が返されると思うのですが、その次からの挙動がよくわかりません。
36
-
37
-
38
-
39
-
40
-
41
- どなたか解説をお願いしますm(__)m
42
-
43
-
44
-
45
- すみません、今ひらめきました。
46
-
47
-
48
-
49
- 別件になってしまいますが、
50
-
51
-
52
-
53
- ```ここに言語を入力
54
6
 
55
7
  function factorial(n){
56
8
 

1

内容修正

2018/05/09 06:08

投稿

Behemoth
Behemoth

スコア29

test CHANGED
File without changes
test CHANGED
@@ -36,4 +36,42 @@
36
36
 
37
37
 
38
38
 
39
+
40
+
39
41
  どなたか解説をお願いしますm(__)m
42
+
43
+
44
+
45
+ すみません、今ひらめきました。
46
+
47
+
48
+
49
+ 別件になってしまいますが、
50
+
51
+
52
+
53
+ ```ここに言語を入力
54
+
55
+ function factorial(n){
56
+
57
+ if(n == 2){
58
+
59
+ var ary = [0,1];
60
+
61
+ return ary;
62
+
63
+ }else{
64
+
65
+ return factorial(n - 1).push(ary[n - 1] + ary[n - 2]);
66
+
67
+ }
68
+
69
+ }
70
+
71
+ ```
72
+
73
+ フィボナッチ数の配列を作成する関数を書いてみたのですが、Uncaught TypeError: Cannot read property '1' of undefined 数字の1が数字として認識されていないようです。
74
+
75
+ Number(1)としてもだめでした。
76
+
77
+ どうしたらよろしいでしょうか?