1. 程式人生 > >4-7 統計某類完全平方數 (20分)

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
#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,m;
	n=(int)sqrt(N);
	m=n*n;
	if(m==N)
	{
		int num[10]={0};
		int i;
		while(m>0)
		{
			for(i=0;i<=9;i++)
			{
				if(m%10==i)
				{
					num[i]+=1; 
					if(num[i]==2)
					{
						return 1;
					}
				} 
			}
			m=m/10;
		}
		return 0;
	}
	return 0;
}