pta 6-7 统计某类完全平方数 (20分)

Posted 3111-tomorrow

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pta 6-7 统计某类完全平方数 (20分)相关的知识,希望对你有一定的参考价值。

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 ", cnt); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: 105 500 输出样例: cnt = 6
我的代码及注释:
 1 //判断是否为完全平方数
 2 int is1(int n)
 3 {
 4     if((sqrt(n)-(int)sqrt(n))==0)return 1;//sqrt(n)为c语言中开平方的函数,此函数的返回值是double型
 5     else return 0;
 6 }
 7 //判断是否有两位数字相同
 8 int is2(int n)
 9 {
10     int len=0;
11     len=(int)log10(n)+1;//利用c语言中10的对数加1来计算整数的数位
12     int a[len];//定义一个适当长度的数组,用来存放整数的各位数位
13     int i;
14     for(i=0;i<len;i++)
15     {
16         a[i]=n%10;//为数组赋值
17         n=n/10;
18     }
19     int p,q;//判断数组中是否存在至少两个相同的数字
20     int sign=0;
21     for(p=0;p<len;p++)
22     {
23         for(q=p+1;q<len;q++)
24         {
25             if(a[p]==a[q])
26             {
27                 sign=1;break;//若数组中有两个相同的数字,则更改sign的值,并中断循环
28             }
29         }
30     }
31     if(sign==0)return 0;
32     else return 1;
33 }
34 
35 
36 int IsTheNumber ( const int N )
37 {
38     if(is1(N) && is2(N))//判断条件
39         return 1;
40 }

 

以上是关于pta 6-7 统计某类完全平方数 (20分)的主要内容,如果未能解决你的问题,请参考以下文章

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

PTA基础编程题目集6-7 统计某类完全平方数 (函数题)

PTA题目集导航

4-7 统计某类完全平方数

[PTA]实验5-6 使用函数判断完全平方数

PTA 程序设计天梯赛(61~80题)