#55441: c++解答


yp11451009@yphs.tp.edu.tw (711-19王敬皓)


#include<bits/stdc++.h>
using namespace std;

int main(){

    // 枚舉第一邊 a,範圍從 1 到 999
    for(int a=1; a<1000; a++){

        // 枚舉第二邊 b,且 b 要大於 a,避免重複
        for(int b=a+1; b<1000; b++){

            // 因為題目要求 a+b+c=1000
            // 所以可以直接算出第三邊 c
            int c=1000-a-b;

            // 如果 c 小於等於 b
            // 代表 c 已經不是最大邊,後面的 b 只會讓 c 更小
            // 因此可以停止這層迴圈
            if(c<=b) 
                break;

            // 使用畢氏定理判斷是否為直角三角形
            // a²+b²=c²
            if(a*a+b*b==c*c){

                // 輸出三邊乘積
                cout<<a*b*c<<'\n';

                // 找到答案後直接結束程式
                return 0;
            }
        }
    }
}