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

質問編集履歴

3

内容修正

2018/05/09 06:21

投稿

Behemoth
Behemoth

スコア29

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

2

内容修正

2018/05/09 06:21

投稿

Behemoth
Behemoth

スコア29

title CHANGED
File without changes
body CHANGED
@@ -1,30 +1,6 @@
1
1
  再帰関数でフィボナッチ数を生成するコードについてです。
2
2
 
3
3
  ```
4
- function fibonacci(num) {
5
- if (num <= 1) return 1;
6
- return fibonacci(num - 1) + fibonacci(num - 2);
7
- }
8
- ```
9
-
10
- たとえば5を引数に取った場合、
11
- fibonacci(1)//return 1
12
- fibonacci(2)
13
- fibonacci(3)
14
- fibonacci(4)
15
- fibonacci(5)
16
- のようにスタックされていくと思います。
17
-
18
- fibonacci(1)の時に1が返されると思うのですが、その次からの挙動がよくわかりません。
19
-
20
-
21
- どなたか解説をお願いしますm(__)m
22
-
23
- すみません、今ひらめきました。
24
-
25
- 別件になってしまいますが、
26
-
27
- ```ここに言語を入力
28
4
  function factorial(n){
29
5
  if(n == 2){
30
6
  var ary = [0,1];

1

内容修正

2018/05/09 06:08

投稿

Behemoth
Behemoth

スコア29

title CHANGED
File without changes
body CHANGED
@@ -17,4 +17,23 @@
17
17
 
18
18
  fibonacci(1)の時に1が返されると思うのですが、その次からの挙動がよくわかりません。
19
19
 
20
+
20
- どなたか解説をお願いしますm(__)m
21
+ どなたか解説をお願いしますm(__)m
22
+
23
+ すみません、今ひらめきました。
24
+
25
+ 別件になってしまいますが、
26
+
27
+ ```ここに言語を入力
28
+ function factorial(n){
29
+ if(n == 2){
30
+ var ary = [0,1];
31
+ return ary;
32
+ }else{
33
+ return factorial(n - 1).push(ary[n - 1] + ary[n - 2]);
34
+ }
35
+ }
36
+ ```
37
+ フィボナッチ数の配列を作成する関数を書いてみたのですが、Uncaught TypeError: Cannot read property '1' of undefined 数字の1が数字として認識されていないようです。
38
+ Number(1)としてもだめでした。
39
+ どうしたらよろしいでしょうか?