标题:关于完全平方数的C语言问题求助
只看楼主
小cai鸟
Rank: 2
等 级:论坛游民
帖 子:53
专家分:25
注 册:2018-7-13
结帖率:60%
 问题点数:0 回复次数:7 
关于完全平方数的C语言问题求助
/*本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。*/

#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 g, s, b;
  
  b = N/100;
  s = N/10%10;
  g = N%10;
  if(N==(int)sqrt(N)*(int)sqrt(N)&&(b==s||b==g||s==g))  return 1;
  else  return 0;
}

/*以上这样写有什么错误吗??*/

/*为什么要下面那种写法??*/

int IsTheNumber ( const int N )
{
    int m,n;
    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;
}
搜索更多相关主题的帖子: 平方 int const return sqrt 
2018-07-13 10:34
no1xijin
Rank: 9Rank: 9Rank: 9
来 自:江西
等 级:贵宾
威 望:20
帖 子:211
专家分:1207
注 册:2015-7-8
得分:0 
................

[此贴子已经被作者于2018-7-13 16:39编辑过]


126邮箱联系方式:no1xijin@126. com
2018-07-13 10:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
第一个 IsTheNumber 求的是 个、十、百位 上是否有数字相同
第二个 IsTheNumber 求的是 各位 上是否有数字相同
2018-07-13 10:54
小cai鸟
Rank: 2
等 级:论坛游民
帖 子:53
专家分:25
注 册:2018-7-13
得分:0 
回复 3楼 rjsp
哦哦  我好像懂了  谢谢
2018-07-13 11:09
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
得分:0 
回复 4楼 小cai鸟
我认为你的写法也正确呀,看不出有问题,能否解释一下为什么你的写法不对呢?
2018-07-13 19:47
小cai鸟
Rank: 2
等 级:论坛游民
帖 子:53
专家分:25
注 册:2018-7-13
得分:0 
回复 5楼 kfyniriu
输出是对的  但是交不上  所以我也很费解
2018-07-14 08:56
kfyniriu
Rank: 6Rank: 6
等 级:侠之大者
威 望:9
帖 子:105
专家分:426
注 册:2018-7-6
得分:0 
回复 6楼 小cai鸟
我看懂了,你的方法只适用于三位数的计算,而题目给的是 <判断任一给定整数N>,那么你的方法,在两位数,四位数等情况就不适用了
2018-07-14 20:33
小cai鸟
Rank: 2
等 级:论坛游民
帖 子:53
专家分:25
注 册:2018-7-13
得分:0 
回复 7楼 kfyniriu
哦哦  也对
2018-07-14 22:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488561-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.152054 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved