PTA–4-7 统计某类完全平方数 (20分)
/* 题目中代码 */
#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 dd(int n){//判断一个数中至少有两位数字是否相同
int a[10];
int count=0;
for(int i=0;n>0;i++){//每位数放到数组中
a[i]=n%10;
count++;
n/=10;
}
int flag=0;
int i,j;
for(i=0;i<count-1;i++) {//开始判断一个数中至少有两位数字是否相同
for(j=i+1;j<count;j++){
if(a[i]==a[j]){
flag=1;
break;
}
}
}
return flag;
}
int IsTheNumber ( const int N ){
int n=N;
int s1=dd(n);
int s2=((int)pow((int)sqrt(n),2))==n?1:0;//判断是否为完全平方数
if(s1&&s2){
printf("%d ",n);
return 1;
}else {
return 0;
}
}
总结:比较笨的方法,好理解,易实现,希望有错误可以指正。