藍橋杯——2015年C++A組第1題:方程整數解【枚舉】

一、題目

方程: a^2 + b^2 + c^2 = 1000
(或參見【圖1.jpg】)


這個方程有整數解嗎?有:a,b,c=6,8,30 就是一組解。
你能算出另一組合適的解嗎?

請填寫該解中最小的數字。

注意:你提交的應該是一個整數,不要填寫任何多餘的內容或說明性文字。

二、思路

直接枚舉。

由於a^2+b^2+c^2=1000,那麼,a,b,c肯定小於1000的方根

三、題解

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
    for (int a=1;a<sqrt(1000);a++)
    {
        for (int b=1;b<sqrt(1000);b++)
        {
            for (int c=1;c<sqrt(1000);c++)
            {
                if(a*a+b*b+c*c==1000)
                {
                    cout << a << " " << b << " " << c << " " << endl;
                }
            }
        }
    }
    return 0;
}

 

四、結果

6 8 30 
6 30 8 
8 6 30 
8 30 6 
10 18 24 
10 24 18 
18 10 24 
18 24 10 
24 10 18 
24 18 10 
30 6 8 
30 8 6 

Process finished with exit code 0

已經知道6 8 30已經組成一組解,所以另一組解是24 10 18 ,所以另一組解最小的數字是10,即是解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章