classSolution{public:boolisPerfectSquare(int num){if(num ==1)returntrue;for(longlong i =2; i*i <= num; i ++){if(num%(i*i)==0){
num = num/(i*i);
i =1;}}if(num ==1)returntrue;returnfalse;}};
3. 普通解法
class Solution{public:
bool isPerfectSquare(int num){if(num == 1)
return true;
bool flag = false;for(long long i = 2; i*i <= num; i ++){if(i*i == num){
flag = true;
break;}}
return flag;}};
測試運行
#include<iostream>usingnamespace std;boolisPerfectSquare(int num){if(num ==1)returntrue;bool flag =false;for(longlong i =2; i*i <= num; i ++){if(i*i == num){
flag =true;break;}}return flag;}intmain(){
cout << boolalpha <<isPerfectSquare(16);return0;}