JavaScriptの仕様あるいは挙動についての疑問です.
再帰関数&条件三項演算子の場合は実行できます.
ts
1const factional = (n: number) => { 2 return n <= 1 ? 1 : n * factional(n - 1); 3}; 4const ans = factional(10);
2変数引数&再帰も実行できます.
ts
1const gcd = (a: number, b: number) => { 2 return b == 0 ? a : gcd(b, a & b) 3 if (b==0) { 4 return a; 5 } else { 6 return gcd(b, a % b); 7 } 8}; 9const ans = gcd(48, 36);
にもかかわらず次のコードは実行時にスタックオーバーフローします.
ts
1const gcd = (a: number, b: number) => { 2 return b == 0 ? a : gcd(b, a & b) 3};
不思議に思えましたが当たり前の結果なんでしょうか?
参考資料だけでも教えていただければ幸いです.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/23 23:26