lang
1function factorial(num) 2{ 3 // If the number is less than 0, reject it. 4 if (num < 0) { 5 return -1; 6 } 7 // If the number is 0, its factorial is 1. 8 else if (num == 0) { 9 return 1; 10 } 11 // Otherwise, call this recursive procedure again. 12 else { 13 return (num * factorial(num - 1)); 14 } 15} 16 17var result = factorial(8); 18document.write(result); 19 20// Output: 40320 21
これどうなってるんでしょうか...
return (num * factorial(num-1));
これで87654321となるらしいんですが,return (num * factorial(num-1));の最初返すのが87なのは分かります。
なぜその後65*4...となるんでしょう?
return (num * factorial(num-1));の最初のnumが56を保持してfuctirial(num - 1)が返した代入した引数になってるんですか?
ここで質問ですが、最初に出てきたnumとfactorial(num-1)のnumは違うんでしょうか?
分からないので教えて下さい
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/01/18 14:19