Programers:整数平方根を判別(pow/sqrt)


cmath


  • 平方根が整数か否かを判別する2つの方法がある.
    方法1)整数の平方値であるか否かを決定する
    方法2)強制的にint型に変換して比較する
  • sqrt()pow(), powl(), powf()位置<cmath>(戻りタイプはdouble/long/floatに依存!)
  • コード#コード#

    #include <string>
    #include <vector>
    #include <cmath>
    using namespace std;
    
    long long solution(long long n) {
        long long sq = (int)sqrt(n) == sqrt(n) ? sqrt(n) : -1;
        return sq > 0 ? powl(sq+1,2) : -1;
    }