A Pythagorean triplet is a set of three natural numbers, a < b < c , for which,
\large a^2+b^2=c^2
For example,
There exists exactly one Pythagorean triplet for which a + b + c = 1000
. Find the product abc .
毕达哥拉斯三元组是一组三个自然数的集合,且
,其中
例如:
恰好存在一个 a + b + c = 1000 的毕达哥拉斯三元组,求积 abc
题目中提到了毕达哥拉斯三元组,我们首先理解下其数学定义
在一个边长为 a、b、c 的直角三角形中,a²+b²=c² 。理想的情况是 a、b、c 均为整数,则称为毕达哥拉斯三元数组
如题目中给出的例子,3、4、5 就符合条件
根据题目叙述,我们要满足 a < b < c 和 a²+b²=c² 的条件
那么只需要分别定义三个变量 a、b、c ,分别给它们赋值为 1、2、3 并符合比较关系,用来满足第一个条件
然后从变量 c
开始,三层循环,最后一层中去判断 a + b + c = 1000 和 a²+b²=c² 条件如果满足,则输出此时的乘积即为所求
这并不是唯一的解决方案,但是是我认为比较简单,最容易理解的一种
/*
* @Author: coder-jason
* @Date: 2022-04-17 13:04:36
* @LastEditTime: 2022-04-17 13:24:10
*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
for (int c = 3; c < 1000; c++)
{
for (int b = 2; b < c; b++)
{
for (int a = 1; a < b; a++)
{
if ((a + b + c == 1000) && (a * a + b * b == c * c))
{
cout << a * b * c;
}
}
}
}
return 0;
}
答案:31875000