PTA 6-7 统计某类完全平方数

avatar
作者
筋斗云
阅读量:0

6-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 = N, b = 0;     int p[10] = {0};     int m = sqrt(n);     if(m * m == n)     {         while(n)         {             b = n % 10;             /* 计数,将所计的数存在p数组              * 例如,144              * p[4]遇到两次,则p[4]++重复操作两次              * 则p[4]=2 */             p[b]++;             n /= 10;         }         for(int i = 0; i <= 9; i++)         {             if(p[i] > 1) // 判断数组里面的数是否重复                 return 1;         }     }     return 0; }

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!