在 C++ 中不求平方根检验一个数是否是完全平方


假如给定了一个数,我们要检查该数是否是完全平方。我们将不使用平方根运算来检查它。假如有一个数 1024,这是一个完全平方,但 1000 不是一个完全平方。逻辑很简单,我们要遵循以下算法来获得结果。

算法

isPerfectSquare(n) −

输入 − 数 n

输出 − 如果该数是一个完全平方,则为 true,否则为 false

begin
   for i := 1, i2 ≤ n, increase i by 1:
      if n is divisible by i, and n / i = i, then
         return true
   done
   return false
end

例子

实时演示

#include <iostream>
using namespace std;
bool isPerfectSquare(int number) {
   for (int i = 1; i * i <= number; i++) {
      if ((number % i == 0) && (number / i == i)) {
         return true;
      }
   }
   return false;
}
int main() {
   int n = 1024;
   if(isPerfectSquare(n)){
      cout << n << " is perfect square number";
   } else {
      cout << n << " is not a perfect square number";
   }
}

输出

1024 is perfect square number

更新于:22-10-2019

1 千次浏览

开启你的 职业 生涯

通过完成课程获得认证

开始学习
广告