美团8-26嵌入式软件开发笔试
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《软件开发笔试汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
一
小美在手机上种果树,只要成熟了就可以领到免费的水果了。
小美每天可以给果树浇水,果树的成长值加x。同时也可以给果树施肥,两次施肥至少需要间隔2天,果树的成长值加y。果树成长值达到就成熟了。
小红想知道,最少需要多少天可山领到免费的水果。
输入描述
一行三个整数x, y, z,分别表示浇水的成长值,施肥的成长值,果树成熟的成长值。
1≤x, y, z≤10^9
输出描述
一行一个整数,表示最少需要多少天可以领到免费的水果。
示例1
输入
1 2 10
输出
6
说明
第一天施肥浇水,成长值为2+1=3。
第二天浇水,成长值为3+1=4。
第三天浇水,成长值为4+1=5。
第四天施肥浇水,成长值为5+2+1=8。
第五天浇水,成长值为8+1=9。
第六天浇水,成长值为9+1=10。
第六天果树成熟了,可以领到免费水果了!
#include <iostream> using namespace std; int main() { int x, y, z; cin >> x >> y >> z; int days = 0; while (z > 0) { // 尝试先施肥再浇水 if (z > 2 * x && z > y) { z -= (y + x); days += 1; } else { z -= x; days += 1; continue; } // 检查是否需要继续 if (z <= 0) break; // 连续两天只浇水 int wateringDays = min(z, 2 * x); days += (wateringDays + x - 1) / x; z -= wateringDays; } cout << days << endl; return 0; }
二
大家一起吃饭的时候,总是小红先付钱,然后大家再把钱转给小红。
现在小红有n张账单,每张账单记录了有k个人—起吃饭,以及吃饭的消费费用c,现在小红需要计算每个人需要转给小红多少钱。
由于大家都比较喜欢整数,所以大家每张账单会转给小红[c/k],[c/k]表示对c/k进行上取整,例如5/2进行上取整为3。
输入描述
第一行输入两个整数n,m(1≤n,m≤10^5)表示账单数和除小红外的总人数(分别用1到m表示).
接下来2×n行,每2行表示一张账单。对于每张账单:
第一行输入两个整数
k(2≤k≤m+1),c(1≤c≤10^9)表示一起吃饭的总人数(总人数包括小红),花费。
第二行输入k-1个整数,表示除小红外有哪些人一起吃饭。
数据保证,k的总和不超过2×10^5.
输出描述
输出m个整数,表示每个人要给小红转账的总金额。
示例1
输入
2 3
3 10
1 2
4 8
1 2 3
输出
6 6 2
说明
第一张账单:第1、2个人都会给小红转4元
第二张账单:第1、2、3个人都会给小红转2元
因此答案为4+2=6,4+2=6,2
#include <iostream> #include <vector> using namespace std; int main() { int n, m; cin >> n >> m; vector<int> amount(m, 0); for (int i = 0; i < n; ++i) { int k, c; cin >> k >> c; int transfer = (c + k - 1) / k; // 每个人需要给小红的钱 // 小红自己也算一个人,所以k-1次 for (int j = 0; j < k - 1; ++j) { int person; cin >> person; amount[person - 1] += transfer; // 更新amount数组 } } for (int i = 0; i < m; ++i) { cout << amount[i] << "
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。