本题要求实现一个函数,判断任一给定整数N
是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。
函数接口定义:
int IsTheNumber ( const int N );
裁判测试程序样例:
#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; } /* 你的代码将被嵌在这里 */
输入样例:
105 500
输出样例:
cnt = 6
实现函数:
1 int IsTheNumber ( const int N ) 2 { 3 int n = N; 4 int x = sqrt(n); 5 int b; 6 int p[10]={0}; 7 if(x*x == n) 8 { 9 while(n) 10 { 11 b=n%10; 12 p[b]++; 13 n/=10; 14 } 15 } 16 for(int i=0;i<=9;i++) 17 { 18 if(p[i]>1) 19 { 20 return 1;//若有数值出现次数大于1则会返回1给程序。 21 } 22 } 23 return 0;//函数正常执行完,返回0 24 }