華為社招筆試20191118


輸入10個整數,從中選出3個,使得x^2+xy-y^2+z的值最小.

例子:

輸入: 1 3 1 1 1 1 1 1 1 1 

輸出:-4

 

//最初版本:比較傻的版本.

#include<iostream>
#include<vector>#include<algorithm>
using namespace std;

int main()
{
    int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
    while (cin >> a1 >> a2 >> a3 >> a4 >> a5 >> a6 >> a7 >> a8 >> a9 >> a10)
    {
        int arr[10] = { a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 };
        vector<int> vecInt(arr, arr+10);
        vector<int> vecRes;
        for (int i = 0; i < vecInt.size(); i++)
        {
            for (int j = 0; j < vecInt.size(); j++)
            {
                for (size_t k = 0; k < vecInt.size(); k++)
                {
                    if (i != j && j != k && k != i)
                    {
                        int x = vecInt[i];
                        int y = vecInt[j];
                        int z = vecInt[k];
                        int result = x*x+x*y-y*y+z;
                        vecRes.push_back(result);
                    }
                    else
                    {
                    }
                }
            }
        }
        sort(vecRes.begin(), vecRes.end());
        cout << vecRes[0];
    }

    return 0;
}

 

//對輸入進行優化

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;

int main()
{
    int num;
    vector<int> vecInt;
    while (cin >>num)    //如果一行輸入多個數,windows下Ctrl+Z會終止輸入.
    {
        vecInt.push_back(num);
    }
    vector<int> vecRes;
    for (int i = 0; i < vecInt.size(); i++)
    {
        for (int j = 0; j < vecInt.size(); j++)
        {
            for (size_t k = 0; k < vecInt.size(); k++)
            {
                if (i != j && j != k && k != i)
                {
                    int x = vecInt[i];
                    int y = vecInt[j];
                    int z = vecInt[k];
                    int result = x*x + x*y - y*y + z;
                    vecRes.push_back(result);
                }
                else
                {
                }
            }
        }
    }
    sort(vecRes.begin(), vecRes.end());
    cout << vecRes[0];
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM