C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

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

  1. 数をチェックするプログラムは完全な正方形であるか、Pythonのsqrt関数なしではありません

    数nがあるとすると、nが完全な平方数であるかどうかを確認する必要があります。完全な平方数kは、ある整数aに対してk =a*aとして表すことができます。組み込みの平方根関数を使用せずにこれを解決する必要があります。 したがって、入力がn =121のような場合、121 =11 * 11であるため、出力はTrueになります。 これを解決するには、次の手順に従います- nが0と同じか、nが1と同じ場合、 Trueを返す 開始:=2 停止:=n/2のフロア 開始中<=停止、実行 temp:=開始から停止までのすべての数値のリスト k:=温度の中央要素

  2. 与えられた数がPythonで完全な正方形であるかどうかを確認します

    数nがあるとします。数nが完全な正方形であるかどうかを確認する必要があります。平方根が整数の場合、数値は完全な平方数と呼ばれます。 したがって、入力がn =36の場合、出力は36 =6*6としてTrueになります。 これを解決するには、次の手順に従います- sq_root:=(nの平方根)の整数部分 sq_root ^ 2がnと同じ場合はtrueを返し、それ以外の場合はfalseを返します 例 理解を深めるために、次の実装を見てみましょう- from math import sqrt def solve(n):    sq_root = int(sqrt(n)