荣耀软件开发工程师笔试-嵌入式 9-5
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《嵌入式软件笔试-2023年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
算式求解
要开发一款教育类App,帮助幼儿在识数阶段做一百以内自然数[0.99]的加减法。
屏慕上会显示“1”“2”“3”“4””“5”“6”“7”“8”“9”“0”“+”“-”“=”这些按钮,用户在按了若工按钮之后,如果按了“=”,则会把按“=”之前的字符串作为一个算式,计算结果。
中间结果或最后结果可以为负数。
输入描述
输入为一个字符串,形如“23+86-6+37+24-8-13”。
输入字符串中保证:
1.不会包含除“1”“2”“3”“4”“5”“6”“7"8”“9"“0”“+"“="之外的字符
2.长度不为0
3.不以“+”或“-”开始,不以“+"或“-”结束
4.不会出现连续两个或两个以上"+"
5.不会出现连续两个或两个以上"-"
6."+""-"不会相邻
7.操作数为范围为[0,99]
8.一定包含运算符 (“+”或“-”)
输出描述
算式结果,一个整数。
示例1
输入
1+2+99-10-10
输出
82
#include <iostream> #include <string> #include <sstream> using namespace std; int calculate(const string& s) { int result = 0; int num = 0; char op = '+'; stringstream ss(s); while (ss >> num) { if (op == '+') { result += num; } else if (op == '-') { result -= num; } ss >> op; } return result; } int main() { string s; cin >> s; cout << calculate(s) << endl; return 0; }
找出升序数组中和为给定值的两个数字
输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
如果有多对数字的和等于输入的数字,输出找到的第一对即可。
输入描述
第一行输入一个按升续排序过的整数数组,数组元素不可重复,数组最大不超过1000个元素,起始和结束用中括号。
第二行输入一个整数,表示要在第一行数组中要查找的两个数字的和。
输出描述
输出一行三个整数,第一个表示结果是否正常(0表示异常或未找到,1表示正常),第二个对应找到的数组索引小的数字,第三个对应找到的数组索引大的数字。
三个整数用单个空格隔开。
如果结果异常或未找到,后两个数字返回均为0。
示例1
输入
1 2 4 7 11 15
6
输出
1 2 4
#include <iostream> #include <vector> using namespace std; vector<int> twoSum(vector<int>& numbers, int target) { int left = 0, right = numbers.size() - 1; while (left < right) {
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。