本题要求实现一个判断整数是否为完全平方数的简单函数。
函数接口定义:
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:
10
输出样例1:
NO
输入样例2:
100
输出样例2:
YES
解题思路
完全平方数定义及性质:指用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。其中有一条,平方数的个位数字只能是 0, 1,4,5,6,9 。
由定义知道我们只需要知道给的数个位是不是为以上0, 1,4,5,6,9
废话不多说直接上代码(盘他)
/* 你的代码将被嵌在这里 */
int IsSquare(int n)
{
// 平方数的个位数字只能是 0, 1,4,5,6,9 。
int result = 0, square;
//get传入n的个位数
square = n % 10;
//判断个位是不是为0,1,4,5,6,9
if (square == 0 || square == 1 || square == 4 || square == 5 || square == 6 || square == 9)
{
result = 1;
}
return result;
}