如何检查 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 并检查是否相等。