使用函数判断完全平方数 分数 10 作者 张高燕 单位 浙大城市学院 本题要求实现一个判断整数是否为完全平方数的简单函数。 函数接口定义: int IsSquare( int n ); 其中n是用户传入的参数,在长整型范围内。如果n是完全平方数,则函数IsSquare必须返回1,否则返回0。 裁判测试程序样例: #include <stdio.h> #include <math.h> int IsSquare( int n ); int main() { int n; scanf("%d", &n); if ( IsSquare(n) ) printf("YES\n"); else printf("NO\n"); return 0; } /* 你的代码将被嵌在这里 */
时间: 2023-06-13 08:08:20 浏览: 407
自定义函数求素数(质数).py
一种简单的实现方式是利用数学性质:完全平方数是连续奇数之和。具体地,我们可以从1开始,每次加上连续的奇数,直到得到的数大于等于n。如果得到的数恰好等于n,则n是完全平方数;否则n不是完全平方数。
以下是完整的代码实现:
```C
int IsSquare(int n) {
int i = 1;
while (n > 0) {
n -= i;
i += 2;
}
return n == 0;
}
```
这里的`i`表示当前连续奇数的起始值,每次循环将`i`增加2,表示加上下一个连续奇数。循环条件是`n`大于0,如果得到的数已经小于0了,说明`n`不可能是完全平方数。最后判断`n`是否等于0即可。
需要注意的是,这种方法可能会导致整型溢出,因为完全平方数的平方根可能会超过整型范围。可以将循环条件改为`n >= 0`,这样就不会出现溢出的问题。
阅读全文