您的位置:首页 > 编程语言 > Go语言

Project Euler Problem 9: Special Pythagorean triplet

2017-03-20 00:09 435 查看
Special Pythagorean triplet

Problem 9

A Pythagorean triplet is a set of three natural numbers,a <
b < c, for which,

a2 + b2 =c2

For example, 32 + 42 = 9 + 16 = 25 = 52.

There exists exactly one Pythagorean triplet for whicha +
b + c = 1000.

Find the product abc.

C++:

#include <iostream>

using namespace std;

int main()
{
int n, c;

// a + b + c = n
// a^2 + b^2 = c^2
// a < b < c
// a + b > c
// a < n / 3
// b <= (n - a) / 2
// c = n - a - b

while(cin >> n) {
for(int a=1, maxa=n/3; a<maxa; a++) {
for(int b=a+1, maxb=(n-a)/2; b<=maxb; b++) {
c = n - a - b;
if(a + b <= c)
continue;
if(a * a + b * b == c * c)
cout << a * b * c << endl;
}
}
}

return 0;
}


C++(Truth):

#include <iostream>

using namespace std;

int main()
{
int s, c;

while(cin >> s) {
for(int a=3, maxa=(s-3)/3; a<=maxa; a++) {
for(int b=a+1, maxb=(s-1-a)/2; b<=maxb; b++) {
c = s - a - b;
if(a + b <= c)
continue;
if(a * a + b * b == c * c)
cout << a * b * c << endl;
}
}
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: