如果数字的平方根是整数,则该数字被称为完美平方数。换句话说,当平方根是整数时,该数字称为理想平方数。
我们可以通过找到该数字的平方根来检查完美平方,然后一次又一次与i匹配以获得确切的平方根。当平方根与值相交时,它不是理想的平方数。
但是这里为了减少工作量,我们没有一次又一次地检查平方根。众所周知,理想平方数的平方根是整数,那么我们可以将平方根加1,然后检查理想平方匹配。
Input: A number to check: 1032 Output: 1032 不是一个完美的平方数。
isPerfectSquare(num)
输入: 数字。
输出:如果一个数字是理想的平方数,则为True,并打印平方根。
Begin if num < 0, then exit sqRoot := 1 sq := sqRoot^2 while sq <= num, do if sq = num, then return sqRoot sqRoot := sqRoot + 1 sq := sqRoot^2 done otherwise return error End
#include<iostream> using namespace std; int isPerfectSquare(int num) { if(num < 0) return -1; //a -ve number is not a valid square term int sqRoot = 1, sq; while((sq =(sqRoot*sqRoot)) <= num) { //when square of square root is not crossed the number if(sq == num) return sqRoot; sqRoot++; //as square root of a perfect square is always integer } return -1; } int main() { int num, res; cout << "Enter a number to check whether it is perfect square or not: "; cin >> num; if((res = isPerfectSquare(num)) != -1) cout << num << " is a perfect square number, square root: " << res; else cout << num << " 不是一个完美的平方数。"; }
输出结果
Enter a number to check whether it is perfect square or not: 1032 1032 不是一个完美的平方数。