Perfect square and perfect cube

前端 未结 8 2131
离开以前
离开以前 2020-12-09 12:27

Is there any predefined function in c++ to check whether the number is square of any number and same for the cube..

8条回答
  •  不思量自难忘°
    2020-12-09 12:52

    sqrt(x), or in general, pow(x, 1./2) or pow(x, 1./3)

    For example:

    int n = 9;
    int a = (int) sqrt((double) n);
    if(a * a == n || (a+1) * (a+1) == n)  // in case of an off-by-one float error
        cout << "It's a square!\n";
    

    Edit: or in general:

    bool is_nth_power(int a, int n) {
      if(n <= 0)
        return false;
      if(a < 0 && n % 2 == 0)
        return false;
      a = abs(a);
    
      int b = pow(a, 1. / n);
      return pow((double) b, n) == a || pow((double) (b+1), n) == a;
    }
    

提交回复
热议问题