| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5208 人关注过本帖
标题:[求助]求50以内勾股数组(已经解决)
只看楼主 加入收藏
bccnfyz
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-10-20
收藏
 问题点数:0 回复次数:8 
[求助]求50以内勾股数组(已经解决)
求50以内勾股数组,即3个整数满足勾股定理,谢谢先。

问题解决了,谢谢大家提供的各种思路,开阔眼界了啊,呵呵。

[此贴子已经被作者于2006-11-13 14:36:04编辑过]

搜索更多相关主题的帖子: 问题 
2006-10-20 11:05
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
三重循环1<=i<=48 i+1<=j<=49 j+1<=k<=50.然后直接判断i,j,k是否可以构成三角形且i*i+j*j==k*k是否成立就可以了.


倚天照海花无数,流水高山心自知。
2006-10-20 11:15
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
如果 (a, b, c) 是勾股数,它们的正整数倍数,也是勾股数,即 (na, nb, nc) 也是勾股数。若果 a, b, c 三者互质(互

为素数,因为它们的最大公因数是 1)它们就称为素勾股数。


选一个3以上的奇数,将该数自乘为平方数,除以2,答案加减0.5可得到两个新的数字,这两个数字和你开始选取的奇数,

三者必定形成一个奇勾股数。

加上这两个条件对查找大的勾股数可减少时间开销。

由于工作,N久都没来了!
2006-10-20 12:18
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
数学问题,值得学习

谁有强殖装甲第二部,可以Q我460054868
2006-10-20 18:39
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 
程序代码如下:
#include "stdio.h"
void main()
{
int n=1,Z,Y,X;
for(Z=5;Z<=50;Z++)
for(Y=4;Y<Z;Y++)
for(X=3;X<Y;X++)
if(X*X+Y*Y==Z*Z)
printf("%d:%d,%d,%d\n",n++,X,Y,Z);
return 0;
}
/*输出结果:
1:3,4,5
2:6,8,10
3:5,12,13
4:9,12,15
5:8,15,17
6:12,16,20
7:15,20,25
8:7,24,25
9:10,24,26
10:20,21,29
11:18,24,30
12:16,30,34
13:21,28,35
14:12,35,37
15:15,36,39
16:24,32,40
17:9,40,41
18:27,36,45
19:30,40,50
20:14,48,50
*/

♂ 死后定当长眠,生前何须久睡。♀
2006-10-20 19:03
zhang916
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2006-10-1
收藏
得分:0 
main()
{
int i,j,k;
for(i=1;i<=48;i++)
for(j=i;j<=49;j++)
for(k=1;k<=50;k++)
if(i*i+j*j==k*k)
printf("%4d%4d%4d\n",i,j,k);
getch();
}
2006-10-20 19:03
我不是郭靖
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:494
专家分:6
注 册:2006-10-4
收藏
得分:0 
以下是引用shuaiye在2006-10-20 12:18:48的发言:
如果 (a, b, c) 是勾股数,它们的正整数倍数,也是勾股数,即 (na, nb, nc) 也是勾股数。若果 a, b, c 三者互质(互

为素数,因为它们的最大公因数是 1)它们就称为素勾股数。


选一个3以上的奇数,将该数自乘为平方数,除以2,答案加减0.5可得到两个新的数字,这两个数字和你开始选取的奇数,

三者必定形成一个奇勾股数。

加上这两个条件对查找大的勾股数可减少时间开销。

你只提供奇勾股数,那偶勾股数呢?


2006-10-20 20:23
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
[QUOTE]一个3以上的奇数,将该数自乘为平方数,除以2,答案加减0.5在加1可得到两个新的数字这两个数字和你开始选取

的奇数,三者必定形成一个奇勾股数。(例:3*3=9,9/2=4.5,4.5-0.5=4,4+1=5(3,4,5为勾股数))。

你只提供奇勾股数,那偶勾股数呢?



找个3以上的偶数,将其乘2,在自乘减1和加1,这三个数可成勾股数。(例:4*2=8,4*4=16,16-1=15,16+1=17,(8,

16,17)为勾股数。)

但这些方法可能还没遍例完给定的域,可再利用筛选法对其他未查找的数进行判断筛选。[/QUOTE]

由于工作,N久都没来了!
2006-10-20 21:16
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 

这个方法是不错,shuaiye编程看看


谁有强殖装甲第二部,可以Q我460054868
2006-10-20 22:14
快速回复:[求助]求50以内勾股数组(已经解决)
数据加载中...
 
   



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

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