码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-01-29 23:52:33      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:can   i++   利用   sqrt   裁判   span   输入   lse   scan   

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
我的代码及注释:
 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分)

标签:can   i++   利用   sqrt   裁判   span   输入   lse   scan   

原文地址:https://www.cnblogs.com/3111-Tomorrow/p/12241545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!