Project Euler Problem 9: Special Pythagorean triplet

来源:互联网 发布:数据库的er图怎么画 编辑:程序博客网 时间:2024/05/17 21:49

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;}




1 0
原创粉丝点击