本题要求实现一个判断整数是否为完全平方数的简单函数。
函数接口定义:
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; } /* 你的代码将被嵌在这里 */
输入样例1:
90
输出样例1:
NO
输入样例2:
100
输出样例2:
YES
这道题我的解法用到了三目运算符 ?:
具体三目运算符怎么使用的,不懂的话大家可以找其他文章看看,我简单举个例子:
例子 语句A?1:0; 判断语句A是否为真,若为真,返回1,否则返回0;
我的答案
int IsSquare(int n)
{
return (sqrt(n)==(int)sqrt(n))?1:0;
}
假如一个数不是完全平方数,比如2,那么sqrt(2)=1.414......;而(int)sqrt(2)=1.(因为int将他强制转换成整形)所以,2不是完全平方数。
看到这里,相信聪明的你已经明白了。