テストコード|(JavaScript)プログラマー:整数平方根を判別する


に質問


任意の正の整数nについて、nがある正の整数xの二乗であるか否かを判断しようとする.
nが正の整数xの平方である場合、x+1の平方を返し、nが正の整数xの平方でない場合、-1を返す関数を完了する.

制限

  • nは正の整数で、1より大きく、5000000000000未満です.
  • 🎹📢I/O例



    ほどく

    function solution(n) {
        let answer = 0;
      
        // 제곱근을 구한다.
        let x = Math.sqrt(n);
        // 제곱근이 양의 정수가 아니라면 -1, 정수라면 x+1의 제곱의 값을 반환한다.
        answer = Number.isInteger(x) ? Math.pow(x+1, 2) : -1;
        
        return answer;
    }
    最初は、元の方法で文を繰り返して平方根を求めたいと思っていましたが、実行速度に大きな損失があり、サポートされている平方根のMath.sqrt(x)と、値を返すMath.pow(base, exponent) Mathを返しました.pow()は、ベース値に指数を乗算する関数です.Math.pow(x, 0.5);で平方根を求めることもできます.Math.pow(-5, 0.5)の場合、NANに戻ります.

    参考資料とサイト(ありがとうございます)

  • https://programmers.co.kr/learn/courses/30/lessons/12934