联通研究院10.28笔试

更新:联通约面了,但是在线下哇,不知道报不报销,不报销大概率不去了。

-------------------------

我看很多朋友都是卡在输入输出上,题目本身是贼容易的,分享一下我输入输出的处理策略:

第一题:返回数组中两个元素目标和为sum的索引

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

pair<int, int> getIndex(vector<int>& vec, int target) {
    int size = vec.size();
    // 理论上只要存在则会返回合理的下标信息
    for (int i = 0; i < size; ++i) {
        for (int j = i + 1; j < size; ++j) {
            if (vec[i] + vec[j] == target) {
                return make_pair(i, j);
            }
        }
    }
    return make_pair(0, 0);
}

int main()
{
    vector<int> a;
    int sum;
    int data;
    char c1;
    cin >> c1;		// 接符号'['
    while (cin >> data) {
        a.push_back(data);	// ','号没关系,会被cin自动处理,因为在while循环中嘛,只要输入没跳出即可
        if (cin.get() == ']')    break;	// 遇到右括号则跳出数组的输入
    }

    cin >> sum;		// 输入目标和
    auto res = getIndex(a, sum);
    cout << res.first << ',' << res.second << endl;		// 输出结果
    return 0;
}

第二题:动态规划直接套,没什么好说的

第三题:是否满足a^3 + b^3 + c^3 = abc,a、b、c均为数字

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    char c;
    cin >> c;	// 需要输入','号嘛,我接一下
    int data;
    cin >> data;
    string s = to_string(data);
    int sum = 0;
    for(int i = 0; i < n; ++i) {
        int value = s[i] - '0';
        sum += (value * value * value);
    }

    cout << ((sum == data) ? 1 : -1)<< endl;
    return 0;
}


上面的代码可能有误,主要看核心的输入输出就行了

#联通##联通软件研究院笔试##联通秋招#
全部评论
第三道不是水仙花数,是n次方
1 回复 分享
发布于 2023-10-28 22:16 江苏
我就是第一道输入没搞明白,还真是要自己去掉括号并分割的考完发现是自己substring下标搞错了
点赞 回复 分享
发布于 2023-10-28 21:39 广东
佬,已经面了吗?我还没信,那不就是凉了
点赞 回复 分享
发布于 2023-11-03 20:30 广东
线下哪里?
点赞 回复 分享
发布于 2023-11-03 23:43 北京
话说为啥不能用Java呀。。。
点赞 回复 分享
发布于 2023-11-07 18:39 湖南
佬面了嘛~有消息能否滴滴一下子
点赞 回复 分享
发布于 2023-11-12 11:15 加拿大

相关推荐

10-23 13:23
辽宁大学 Java
点赞 评论 收藏
分享
5 12 评论
分享
牛客网
牛客企业服务