Q&A
解決済
3回答
899閲覧
総合スコア12
JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。
0グッド
0クリップ
投稿2018/06/07 08:59
0
var calc_fib = function fib(n) { if ( n == 0 ) return 0; if ( n == 1 ) return 1; return fib(n-1) + fib(n-2); }; calc_fib(10);
この名前付き無名関数の太字の部分の計算方法がわかりません。 consoleで出た値は'55'と出ましたが、どのように計算しているのでしょうか? どなたか教えていただければ幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答3件
ベストアンサー
return fib(n-1) + fib(n-2);
↑ココの「n」に実数をあてはめていきます。
// n==2の場合、 return fib(1) + fib(0); // <- 1+0 == 1が返る。 // n==3の場合、 return fib(2) + fib(1); // <- fib(2)は1を返し、fib(1)も1を返すので、1+1 == 2が返る。 // n==4の場合、 return fib(3) + fib(2); // <- fib(3)は2を返し、fib(2)は1を返すので、2+1 == 3が返る。
以下略。
投稿2018/06/07 09:23
総合スコア5572
回答へのコメント
2018/06/07 09:37
冒頭部で、この関数にfibという名前がついているので、自分自身を呼び出しているだけです。
fib
このfib関数は、引数と返り値以外に外部とのやり取りがない純粋な関数なので、「たまたま同じ名前の関数を呼び出した」のと同じように考えてください。
投稿2018/06/07 09:03
総合スコア146853
fib(0)=0,fib(1)=1からスタート
投稿2018/06/07 09:45
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
Javascriptの簡単な再帰処理の計算方法について
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/07 09:37