用c语言求解 输出1-50以内的所有勾股数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用c语言求解 输出1-50以内的所有勾股数相关的知识,希望对你有一定的参考价值。

参考技术A #include <stdio.h>
void main()
int a,b,c;
for(a=2;a<=48;a++)
for(b=a+1;b<=49;b++)
for(c=b+1;c<=50;c++)
if(a*a+b*b==c*c)
printf("%-4d%-4d%-4d\\n",a,b,c);

参考技术B

# include <stdio.h>

# include <math.h>

#define N 50

int main ()

int a[N],i,j,m,x;

for(m=0,x=1;m<N;m++,x++)

a[m]=x*x;

for(i=1;i<N;i++)

for(j=i+1;j<N;j++)

for(m=0;m<N;m++)

if(i*i+j*j==a[m])

x=sqrt(a[m]);

printf("%d %d %d\\n",i,j,x);break;

return 0;

好不容易用数组做出来,发现早就有人用for做出来了,发出来分享一下吧。


用Python for语句编写程序输出50以内的勾股数

参考技术A #每个左边的0表示一个空格
lst=[]
for a in range(1,50):
0000for b in range(1,50):
00000000for c in range(1,50):
000000000000if a<=b and a**2+b**2==c**2:
0000000000000000lst.append((a,b,c))
n=0
for a,b,c in lst:
0000s='0,1,2'.format(a,b,c)
0000print '0:10'.format(s),
0000n+=1
0000if 0==n%6:
00000000print
参考技术B sorted([list(x) for x in set(( tuple(sorted((i,j,k))) for i in range(1,51) for j in range(1,51) for k in [int(math.sqrt(i*i+j*j))] if math.sqrt(i*i+j*j)==k and k<51 ))])
Out[89]: 
[[3, 4, 5],
 [5, 12, 13],
 [6, 8, 10],
 [7, 24, 25],
 [8, 15, 17],
 [9, 12, 15],
 [9, 40, 41],
 [10, 24, 26],
 [12, 16, 20],
 [12, 35, 37],
 [14, 48, 50],
 [15, 20, 25],
 [15, 36, 39],
 [16, 30, 34],
 [18, 24, 30],
 [20, 21, 29],
 [21, 28, 35],
 [24, 32, 40],
 [27, 36, 45],
 [30, 40, 50]]

以上是关于用c语言求解 输出1-50以内的所有勾股数的主要内容,如果未能解决你的问题,请参考以下文章

用Python for语句编写程序输出50以内的勾股数

用python编写程序输出50以内的勾股数,如图要求每行显示6组,各组勾股数无重复

打卡 c语言趣味编程 求勾股数

C语言试题六十四之请编写函数fun:求勾股数

C语言试题六十四之请编写函数fun:求勾股数

求50以内的所有勾股数