Math.powのJavaScript実装

アンソニー・チョン

geeksforgeeksに関するこの記事のように、log(n)ソリューションを使用してMath.powを実装しました

http://www.geeksforgeeks.org/write-ac-program-to-calculate-powxn/

ただし、関数が意図したとおりにベースケースを終了しないことがわかりました。このプログラムはCで動作するようですが、JSでは動作しません。

したがって、JavaScriptでも機能すると想定しているCについての何かがあると結論付けています。

JavaScriptの実装に何が欠けていますか?

注意してください:コードスニペットはそのままで、最大コールスタック超過エラーが発生します

var myPow = function(x, n) {
  var res = 1
  var temp;
  if (n === 0) {
    return 1;
  }
  temp = myPow(x, n / 2)
  if (n % 2 === 0) {
    return temp * temp
  } else {
    return x * temp * temp
  }
};

console.log(myPow(2,3));

Abdennour TOUMI

簡単な説明:

使用するparseInt、整数としてMath.floor持つy/2ために0再帰のストッパーである到達できないアンレネス


詳細

[Cアルゴ]を翻訳したい場合

int power(int x, unsigned int y)
{
    if( y == 0)
        return 1;
    else if (y%2 == 0)
        return power(x, y/2)*power(x, y/2);
    else
        return x*power(x, y/2)*power(x, y/2);
 
}

[JSアルゴ]、あなたが持っています。

function power(x,y){
     if(y===0){return 1}
     else if (y%2 ===0){
         return power(x,parseInt(y/2))*power(x,parseInt(y/2))
     }else{
          return x*power(x,parseInt(y/2))*power(x,parseInt(y/2))
     }

}

デモ :

    function power(x,y){
         if(y===0){return 1}
         else if (y%2 ===0){
             return power(x,parseInt(y/2))*power(x,parseInt(y/2))
         }else{
              return x*power(x,parseInt(y/2))*power(x,parseInt(y/2))
         }
    
    }


console.log(power(3,2))

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

inputValのMath.pow()

分類Dev

Math.roundの高速実装?

分類Dev

Math.pow(int、int)が私の素朴な実装よりも遅いのはなぜですか?

分類Dev

Math.Pow()は.NET Frameworkでどのように実装されていますか?

分類Dev

Math.Pow関数の使用

分類Dev

Math.isFinite()メソッドの実装

分類Dev

Excelの数式をJavaScriptに変換する-Math.pow()?

分類Dev

codecademy javascript math

分類Dev

Microsoft SolverFoundationでのMath.Powの使用

分類Dev

指数演算子^とMath.pow()の違い

分類Dev

Math.pow での Java.Lang.Exception

分類Dev

Math.abs(a-b)-Math.abs(c-d)のより高速な実装?

分類Dev

Java Math.pow(x、2.0)とMath.pow(x、2.0000001)のパフォーマンス

分類Dev

Hat ^演算子とMath.Pow()

分類Dev

sage-mathでのモジュラス関数の実装

分類Dev

Java:Math.sqrt()の32ビットfp実装

分類Dev

x = 0のときにMath.pow(10、x)を実行するときに、JavaScriptを使用してRのnoUIsliderタグを変更するShinyエラー

分類Dev

Math.floor VS Math.trunc JavaScript

分類Dev

Math.Sqrt内のMath.Pow-このコードがわかりません

分類Dev

Math.sin内のMath.radians

分類Dev

JodaTimeのMath.max(...)

分類Dev

else if math / bigの条件

分類Dev

Math.NetのTriangularSolver

分類Dev

整数のMath.Floor

分類Dev

bigIntのMath.exp()?

分類Dev

Math.round() の代替

分類Dev

JavaScript-Math.cos(30)の逆

分類Dev

指数値が長いMath.pow()操作を実行するための最良の方法は何ですか?

分類Dev

Math.Pow(10、Math.Abs(1))は10に等しいですか?

Related 関連記事

ホットタグ

アーカイブ