本題要求實現一個函數,判斷任一給定整數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;
}
函數部分
int IsTheNumber(const int N)
{int n = N;int b = 0;int result = 0;int m = sqrt(n);int p[10] = {0};if(m*m == N)//判斷條件一{while(n){b = n%10;p[b]++;n /= 10;}for(int i = 0;i<10;i++){if(p[i]>1)//判斷條件二result = 1;}}return result;
}
關鍵是對兩個條件的轉化。
摘抄自https://blog.csdn.net/qq_43250273/article/details/86655364