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