标题:小白求教导 c语言 感谢各位大佬。。。
只看楼主
NTNate
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2018-8-23
结帖率:80%
已结贴  问题点数:20 回复次数:7 
小白求教导 c语言 感谢各位大佬。。。
一个整数 加上100是完全平方数 && 加上168是完全平方数 小于等于10000输出所有符合条件的数
下面是我写的。  感觉没错 但输出结果不对,,,,
感谢各位大佬帮助检查一下。
#include<stdio.h>
#include<math.h>
void main()
{
    int a=0,c=0,e=0;
    double b=0,d=0;
    while(a<=10000)
    {
        
        while(b!=c && e!=d)
        {
            ++a;
            b=sqrt(a+100);
            c=(int)b;
            e=sqrt(a+168);
            d=(int)c;
        }
        printf ("%d\n",a);
    }
   
}

[此贴子已经被作者于2018-8-23 19:05编辑过]

搜索更多相关主题的帖子: c语言 输出 int while sqrt 
2018-08-23 19:01
NTNate
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2018-8-23
得分:0 
回复 楼主 NTNate
谢谢各位大佬,我自己改了一下
只是结果好像不对。  各位大佬帮看一下。  感谢。
#include<stdio.h>
#include<math.h>
void main()
{
    int a=0,c=0,e=0;
    double b=0,d=0;
    while(a<=10000)
    {
        a++;
        b=sqrt(a+100);
        c=(int)b;
        e=sqrt(a+168);
        d=(int)c;
        while(b==c && e==d)
        {
            printf("%d\n",a);
            break;
        }
    }
   
}

[此贴子已经被作者于2018-8-23 19:53编辑过]

2018-08-23 19:21
NTNate
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2018-8-23
得分:0 
我写的好乱。 改了
#include<stdio.h>
#include<math.h>
void main()
{
    int a=0,c=0,e=0,f=0;
    double b=0,d=0;
    while(a<=10000)
    {
        ++a;
        b=sqrt(a+100);
        c=(int)b;
        d=sqrt(a+168);
        e=(int)d;
        while(b==c && e==d)
        {
            printf("%d\n",a);
            break;
        }
        
    }
   
}




[此贴子已经被作者于2018-8-23 20:08编辑过]

2018-08-23 19:40
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
得分:10 
了解一下
a+100 = b2
a+168 = c2
68 = (c-b)(c+b)  c>b  b、c同偶或同奇
68 = 2*2*17

c+b  c-b
17    4 排除
34    2  c = 18  b =16
68    1 排除
=>  a=156
2018-08-23 20:53
zhangchm2018
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:32
专家分:129
注 册:2018-8-18
得分:10 
以下是引用NTNate在2018-8-23 19:40:16的发言:

我写的好乱。 改了
#include<stdio.h>
#include<math.h>
void main()
{
    int a=0,c=0,e=0,f=0;
    double b=0,d=0;
    while(a<=10000)
    {
        ++a;
        b=sqrt(a+100);
        c=(int)b;
        d=sqrt(a+168);
        e=(int)d;
        while(b==c && e==d)
        {
            printf("%d\n",a);
            break;
        }
        
    }
   
}

b=sqrt(a+100.0);
d=sqrt(a+168.0);
2018-08-23 21:16
NTNate
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2018-8-23
得分:0 
回复 5楼 zhangchm2018
感谢,这样更规范了。
2018-08-24 01:02
NTNate
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2018-8-23
得分:0 
回复 4楼 word123
厉害。
接受我的无尽崇拜:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

c2-b2=68.  c>b  那个 同偶同奇 怎么看。。。。。
这个不太懂。

这个前提下  又是整数,直接分解  底下的解方程就OK了。。。。厉害。。





[此贴子已经被作者于2018-8-24 01:38编辑过]

2018-08-24 01:32
word123
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:13
帖 子:333
专家分:1622
注 册:2014-4-5
得分:0 
一奇一偶的话,两个都是奇数,结果肯定是奇数啊。。。。。。
2018-08-24 17:27



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




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

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