PE9 Special Pythagorean triplet

Posted miria-486

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PE9 Special Pythagorean triplet相关的知识,希望对你有一定的参考价值。

package main

import (
    "fmt"
    "os"
)

/*毕达哥拉斯三元组是一组三个自然数,a < b < c,其中,

a 2 + b 2 = c 2
例如,3 2 + 4 2 = 9 + 16 = 25 = 5 2。

恰好存在一个毕达哥拉斯三元组,其中a + b + c = 1000.
找到产品abc。*/
/*
1.三角形两边之和大于第三边,c边从500开始向下遍历
2.分别遍历500以内的a,b边,如果三个数是三角形数而且和为1000,便结束程序
*/
func main() {
    var a, b, c int
    for a = 500; a > 1; a-- {
        for b = 1; b < 500; b++ {
            for c = 1; c < 500; c++ {
                if b*b+c*c == a*a && a+b+c == 1000 {
                    fmt.Println(a * b * c)
                    os.Exit(0)
                }

            }
        }
    }

}

结果:31875000

以上是关于PE9 Special Pythagorean triplet的主要内容,如果未能解决你的问题,请参考以下文章

[Perl 6][Project Euler] Problem 9 - Special Pythagorean triplet

CodeForces 707C Pythagorean Triples

Codeforces 707C. Pythagorean Triples

Pythagorean Triples CodeForces - 707C 推理题,大水题

893. Groups of Special-Equivalent Strings

HDU4569 Special equations