我的算法日常—判断完全平方数
思路
- 先对数据a进行开方的到b
- 之后b对其进行四舍五入,得到一个整数c
- 当且仅当 b==c 时 c**2 == a
- 所以就可以判断a是否为完全平方数了
分析
- n 为存在某一整数
- 当b < n + 0.5 时 b > c => c**2 < a
- 当b >= n + 0.5 时 b < c => c**2 > a
- 当b == n 时 b == c => c**2 == a
- 所以当且仅当 c**2 == a 时 a 为完全平方数
C++代码
#include
#include
using namespace std;
int main()
{
int a;
cin>>a;
int b = floor(sqrt(a) + 0.5);
if(a == b*b) cout<