在 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 千次瀏覽

開啟你的 職業 生涯

透過完成課程獲得認證

開始學習
廣告