PAT-4-7 統計某類完全平方數 (20分)
阿新 • • 發佈:2019-01-28
4-7 統計某類完全平方數 (20分)
本題要求實現一個函式,判斷任一給定整數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
int IsTheNumber ( const int N ){ int n,m,temp; m=N; n = (int)sqrt(N); if(n*n==m){ int num[10]= {0};//這裡應該定義num的長度為10,因為傳入的整數的每位數可能是0~~9,而不是傳入數的位數。 while(m>0){//遍歷N的每一位上的數字,在相應的陣列中自加 如果有一個數組元素等於2 說明至少有2個位上的數相同 temp = m%10; for(int i=0 ;i<=9;i++){ if(temp==i){ num[i]++; if(num[i]==2){ return 1; } } } m/=10; } return 0; } return 0; }