問題タブ [perfect-square]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
169 参照

recursion - 再帰的なニュートン平方根関数は完全な二乗でのみ終了します

Web で見た他の再帰ニュートン平方根関数と非常によく似たプログラムを作成しました。何らかの理由で、これは完全な正方形でのみ機能し、その理由を見つけることができないようです. 3 つの変数 (イプシロン) を渡し、x=a を設定し、a = を 9 行目に渡された方程式に設定してから、abs(a*ax) を渡してみました。私はそれをできる限り説明しようとしましたが、それは私にとって少し新しいトピックであり、これが完全な根を見つけることしかできないのか、それとも私のコード/方程式が間違っているのかわかりません.

編集:関数は完全な正方形に対してのみ機能するのではなく、完全な正方形に対してのみ正しく返されます。それが完全な正方形でない場合a、最終的に正しい値になります (デバッガーでチェックされます) が、再帰は決して停止しません。6行目の比較で何かに違いないと思ったので、DBL_EPSILONを置き換えてみましaたが、間違った値が返されました。
このエラーは、完全でない正方形が入力された場合にも 6 行目に表示されます。

RecursionProgrammingExcercisesMurphyT.exe の 0x00007FFE8E9C06F0 (ucrtbased.dll) で未処理の例外: 0xC00000FD: スタック オーバーフロー (パラメーター: 0x0000000000000001、0x00000013B2603FE8)。発生した