#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;
#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 ( const int N)
{
int n,i,a;
double m;
int num[10]={0};
n=(int) sqrt(N);
m=sqrt(N);
a=N;
if(a==m*n)
while(a)
{
for(i=0;i<=9;i++)//这里的for循环起到了一个类似于计数器的作用,t依托数组通过数组从0-9的下标对应与输入数N的个十百位.在用下标对应的数计数中出现w数字的次数
{
if(a%10==i)
{
num[i]+=1;
if (num[i]>=2)
return 1;
}
}
a=a/10;//用a代替M是因为const是一个C语言的关键字,它限定一个变量不允许被改变;用一个a代替来解决这个问题
int n,i,a;
double m;
int num[10]={0};
n=(int) sqrt(N);
m=sqrt(N);
a=N;
if(a==m*n)
while(a)
{
for(i=0;i<=9;i++)//这里的for循环起到了一个类似于计数器的作用,t依托数组通过数组从0-9的下标对应与输入数N的个十百位.在用下标对应的数计数中出现w数字的次数
{
if(a%10==i)
{
num[i]+=1;
if (num[i]>=2)
return 1;
}
}
a=a/10;//用a代替M是因为const是一个C语言的关键字,它限定一个变量不允许被改变;用一个a代替来解决这个问题
}
return 0;
return 0;
}