查找a + b + c = 1000的毕达哥拉斯三联体

查找a + b + c = 1000的毕达哥拉斯三联体,第1张

查找a + b + c = 1000的毕达哥拉斯三联体
#include <math.h>#include <stdio.h>int main(){    const int sum = 1000;    int a;    for (a = 1; a <= sum/3; a++)    {        int b;        for (b = a + 1; b <= sum/2; b++)        { int c = sum - a - b; if ( a*a + b*b == c*c )    printf("a=%d, b=%d, c=%dn",a,b,c);        }    }    return 0;}

说明:

  • b = a;
    如果a,b(a <= b)和c是毕达哥拉斯三重态,
    则b,a(b> = a)和c-也是解,因此我们只能搜索一种情况

  • c = 1000-a-b; 这是问题的条件之一(我们不需要扫描所有可能的“ c”:只需对其进行计算)



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5662613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存