如何检查 3 个数字是否是毕达哥拉斯三元组?
How to check if 3 numbers are a Pythagorean triple?
我们如何在不排序的情况下得到三个数字,然后检查它们是否构成勾股数?
因此,pythagorean(3, 4, 5)
或 pythagorean(5, 3, 4)
将 print/return 为真,而 pythagorean(4, 3, 6)
将 print/return 为假。
你可以使用这个算法:
#include<stdio.h>
int main(){
long long int a, b, c ;
scanf("%llu %llu %llu", &a, &b, &c);
if (a*a==b*b+c*c || b*b==a*a+c*c || c*c==a*a+b*b)
{
printf("YES");
}
else
printf("NO");
return 0;
}
如果使用等式 a^2 + b^2 = c^2,c 应该是最大的数,a 和 b 的顺序无关紧要。只需找到最大的数,将其设置为 c,然后将其他两个值设置为 a 和 b 并检查是否相等。
我们如何在不排序的情况下得到三个数字,然后检查它们是否构成勾股数?
因此,pythagorean(3, 4, 5)
或 pythagorean(5, 3, 4)
将 print/return 为真,而 pythagorean(4, 3, 6)
将 print/return 为假。
你可以使用这个算法:
#include<stdio.h>
int main(){
long long int a, b, c ;
scanf("%llu %llu %llu", &a, &b, &c);
if (a*a==b*b+c*c || b*b==a*a+c*c || c*c==a*a+b*b)
{
printf("YES");
}
else
printf("NO");
return 0;
}
如果使用等式 a^2 + b^2 = c^2,c 应该是最大的数,a 和 b 的顺序无关紧要。只需找到最大的数,将其设置为 c,然后将其他两个值设置为 a 和 b 并检查是否相等。