本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
其中N是用户传入的参数。如果N满足条件,则该函数必须返回1,否则返回0。
解答
// 若一个数能表示成某个整数的平方的形式
// 则称这个数为完全平方数
int IsTheNumber ( const int N )
{
// 判断是否为完全平方数
int i;
int flag = 0;
for (i = 1; i <= N; i++)
{
if (i * i == N)
{
flag = 1;
break;
}
}
if (!flag) return 0;
// 判断是否有两位数字相同
// 存储数字0-9在N中的出现次数
int num[10] = {0};
int n = N;
while (n)
{
// 从末位开始统计次数,并判断是否重复
if (++num[n % 10] == 2)
return 1;
n /= 10;
}
return 0;
}