本题要求实现一个函数,判断任一给定整数N
是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
int IsTheNumber ( const int N ){
int s=sqrt(N);
int a[10]={0},n=N,i;
if(s*s==N){
while(n){
for(i=0;i<10;i++){
if(n%10==i)
a[i]=a[i]+1;
}
n=n/10;
}
for(int j=0;j<10;j++)
if(a[j]>=2)
return 1;
}
return 0;
}
题目中已经包含了math.h头文件,直接用sqrt函数开平方。本题的基本思想是用一个数组来记录0-9这10个数字在大N中每一位出现的次数,例如大N为169,则最终a[1]=1,a[6]=1,a[9]=1;他虽然是一个数学上的完全平方数,但他并不满足本题要求的至少有两位数字相同。