一个毕达哥拉斯三元组是一个包含三个自然数的集合,a<b<c,满足条件:
a2+b2=c2
例如:32+ 42= 9 + 16 = 25 = 52.
已知存在并且只存在一个毕达哥拉斯三元组满足条件a+b+c= 1000。
找出该三元组中abc的乘积。
——————————————————————————————————————————
用的解决方法再暴力不过了,一路循环、判断。。。
代码如下:
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <time.h>
4
5
6 int main (void)
7 {
8 int a,b,c;
9
10 for(c=3;c<=997;c++)
11 {
12 for(b=2;b<=996;b++)
13 {
14 if(c>b)
15 {
16 for(a=1;a<=995;a++)
17 {
18 if(a<b&&a<c&&b<c)
19 {
20 if((a*a+b*b==c*c)&&(a+b+c==1000))
21 {
22 printf("%d*%d*%d=%d\n",a,b,c,a*b*c);
23 break;
24 }
25 }
26 }
27 }
28 }
29 }
30
31 return 0;
32 }
输出结果:200375425=31875000;
原文链接: https://www.cnblogs.com/hhccdf/archive/2013/03/29/2989131.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/82545
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!