这些用于检查完美平方的算法之间有什么区别?

我正在解决一个必须确定给定数字是否为斐波那契数的问题。

它涉及到一个步骤,我们必须检查5 * n * n-4或5 * n * n + 4(n是给定的数字)是否是理想平方。如果这些术语中的任何一个或两者都是完美的平方,则它是斐波那契数,否则不是。

我使用以下语句来检查一个完美的正方形。

bool isPerfectSquare(long long num){
   long long x = sqrt(num);
   return (x*x==num);
}

但是这种方法对4个测试用例显示了错误的答案。

而当我使用此(以下)方法时,它通过了所有测试用例。

bool isPerfectSquare(long long num){
   long long x = sqrt(num);
   if(x%1==0)
      return true;
   else
      return false;
}

这两种方法在找到一个完美的正方形之间有什么区别?

是否还会影响程序的时间复杂度?

评论