本題要求實現一個函數,判斷任一給定整數N
是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等。
函數接口定義:
int IsTheNumber ( const int N );
其中N
是用戶傳入的參數。如果N
滿足條件,則該函數必須返回1,否則返回0。
裁判測試程序樣例:
#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 x,m; 4 x=(int)sqrt(N); 5 m = x*x; 6 if (m == N) 7 { 8 int num[10]={0}; 9 int i; 10 while(m>0) 11 { 12 for(i = 0;i<=9;i++) 13 { 14 if (m%10 == i) 15 { 16 num[i]=num[i]+1; 17 if (num[i]==2) 18 { 19 return 1; 20 } 21 } 22 } 23 m=m/10; 24 } 25 } 26 return 0; 27 }