联通研究院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;
}
上面的代码可能有误,主要看核心的输入输出就行了
#联通##联通软件研究院笔试##联通秋招#