• 华为社招笔试


    输入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;
    }
    新战场:https://blog.csdn.net/Stephen___Qin
  • 相关阅读:
    Azure 云助手主要功能
    静态dll的问题终于搞定了
    青云QingCloud黄允松:最高效的研发管理就是没有管理
    开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石
    青云QingCloud宣布完成C轮融资,金额1亿美元
    NET MVC权限验证
    Fizz-Buzz-Whizz
    API访问客户端
    使用IronPython给.Net程序
    Smart Framework
  • 原文地址:https://www.cnblogs.com/Stephen-Qin/p/11886111.html
Copyright © 2020-2023  润新知