求完全平方数,我们经常使用的有两种方法。
第一种方法:使用sqrt()函数,判断sqrt() == (int)sqrt()是否相等
int main()
{
int n = 0;
scanf("%d", &n);
if (sqrt(n) == (int)sqrt(n))
{
printf("n是完全平方数\n");
}
else
{
printf("n不是完全平方数\n");
}
return 0;
}
第二种:用小于n的数i除以n,判断i* i==n是否相等
int main()
{
int n = 0;
scanf("%d", &n);
int flag = 0;
for (int i = 1; i < n; i++)
{
if (i * i == n)
{
flag = 1;
break;
}
}
if (flag == 1)
{
printf("n是完全平方数\n");
}
else
{
printf("n不是完全平方数\n");
}
return 0;
}
第三种方法:使用奇数平方和的规律,奇数平方和等于奇数个数的平方和。
int main()
{
int n = 0;
scanf("%d", &n);
for (int i = 1; n > 0; i += 2)
{
n -= i;
}
if (n == 0)
{
printf("n是完全平方数\n");
}
else
{
printf("n不是完全平方数\n");
}
return 0;
}