首先判断是否为完全平方数,然后判断至少两位数字相同。
判断至少两位数字相同的时候,可建立一个长度为10的数组,分别对应每个数字,记录下出现的次数即可。
#include <stdio.h>
#include <math.h>
int IsTheNumber ( const int N );
int main()
{
int n1, n2, i, cnt;
scanf("%d %d", &n1, &n2);
cnt = 0;
for ( i=n1; i<=n2; i++ ) {
if ( IsTheNumber(i) )
cnt++;
}
printf("cnt = %d\n", cnt);
return 0;
}
int IsTheNumber(int n)
{
float n_k = pow(n,0.5);
int flag=0,ori = n;
int tong[10]={0};
for(int i=1;i<(int)n_k+1;i++)
{
if(i*i==n)
flag = 1;
}
if(flag==1)
{
while(n>0)
{
tong[n%10]+=1;
if(tong[n%10]>1)
{
return flag;
}
n = n/10;
}
}
flag = 0;
return flag;
}