当前位置: 代码迷 >> C语言 >> 1000 以内勾股数
  详细解决方案

1000 以内勾股数

热度:1384   发布时间:2006-05-04 23:08:00.0
1000 以内勾股数

1. 编程找出1000以内的满足勾股定理 a^2+b^2=c^2的整数组(a,b,c)。

搜索更多相关的解决方案: 勾股数  

----------------解决方案--------------------------------------------------------
疯子啊,一大篇啊!
----------------解决方案--------------------------------------------------------
main()
{
int a,b,c,n=0;
for(a=1;a<=1000;a++)
for(b=a;b<=1000;b++)
for(c=1;c<=1000;c++)
if(a*a+b*b==c*c)
{
printf("%3d,%3d,%3d",a,b,c);
n++;

if(n==3)
{
printf("\n");
n=0;
}
}

}
----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int a,b,c,n=0;
for(a=1;a<=1000;a++)
for(b=a;b<=1000;b++)
for(c=(a<b?a:b);c<=1000;c++)//这样效率可能会更高点的哦!!!
if(a*a+b*b==c*c)
{
if(n%3==0)
putchar('\n');
printf("%4d%4d%4d,",a,b,c);
n++;

}

}
----------------解决方案--------------------------------------------------------

高见!


----------------解决方案--------------------------------------------------------
四楼的改成这样,不过似乎没什么非常好的算法
[CODE]
#include <stdio.h>
int main()
{
int a,b,c,n=0;
for(a=3;a<1000;a++)
for(b=a+1;b<1000;b++)
for(c=b+1;c<=1000;c++)
if(a*a+b*b==c*c)
{
n++;
printf("%5d%5d%5d,",a,b,c);
if(n%3==0)
putchar('\n');
}
return 0;
}
[/CODE]
----------------解决方案--------------------------------------------------------

以下是引用xyelyleh2在2006-5-4 23:08:00的发言:

1 编程找出1000以内的满足勾股定理 a^2+b^2=c^2的整数组(a,b,c)。

题目不赖,几个跟帖都差劲。有个数学公式:

(a*a-b*b)^2+(2*a*b)^2==(a*a+b*b)^2

当然,光靠它找不全。Think it over!


----------------解决方案--------------------------------------------------------

楼上建议没用武之地

没有一个可以找全的公式


----------------解决方案--------------------------------------------------------

用一个公式又找不全,再找漏的更麻烦,何况(3,4,5)
这种乘倍也是可以的(6,8,10)。。。。

但都找不全


----------------解决方案--------------------------------------------------------
/*不开方,也能判完全平方数但愿这个小工具有助于找勾股数*/
#include<stdio.h>
void main()
{ unsigned long x,y0,y1;
scanf("%ld",&x);
y1=x/2;
do
{
y0=y1;
y1=(y0+x/y0)/2;
}
while(y1<y0);
if(y1*y1==x)printf("yes\n");
else printf("no \n");
}
----------------解决方案--------------------------------------------------------
  相关解决方案