百度嵌入式软件笔试编程题
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《嵌入式软件笔试-2023年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
《嵌入式软件笔试-2024年真题汇总》:https://blog.nowcoder.net/zhuanlan/04yYym
时钟指针
小A的寝室里放着一个时钟。时钟有时针,分针,秒针三种指针。在某些时刻,时钟会记录下当前时间,格式为 hh:mm:ss 。时钟上看不出日期,每天零点,三根指针都会归零。现在小A得到了一系列被记录的时间,且这些时间是按照先后顺序被记录的。小A想让你算算,每两个时间点之间,秒针至少转了多少圈。
注:一天有 24 个小时,1 小时有 60 分钟,1 分钟有 60 秒,秒针一分钟转一圈。
输入描述
第一行一个整数 n(2<=n<=10^5) ,代表时间序列中时间点的个数。
第二行 n 个字符串,每个字符串代表一个时间点,格式为 hh:mm:ss
(0<=hh<=24, 0<=mm<60, 0<=s<60)
输出描述
n-1 个数,第 i 个数表示第 i~i+1 时间点秒针转过的圈数。输出结果和答案的绝对误差或相对误差不超过 10^-5 即被认为正确。
示例 1
输入
2 10:00:00 10:00:30
输出
0.5000000000
说明
从 10:00:00 至 10:00:30 至少过了半分钟,秒针在时钟上走了半圈
示例 2
输入
3 10:00:00 09:00:00 08:00:00
输出
1380.0000000000 1380.0000000000
说明
从 10:00:00 至 09:00:00 至少过了 23 小时,秒针在时钟上走了 1380 圈从 09:00:00 至 08:00:00 至少过了 23 小时,秒针在时钟上走了 1380 圈
示例 3
输入
2 00:00:00 00:00:00
输出
0.0000000000
#include <iostream> #include <vector> #include <string> #include <sstream> #include <iomanip> using namespace std; vector<string> solve(int n, const vector<string>& times) { vector<string> ans; for (int i = 1; i < n; ++i) { int h1, m1, s1, h2, m2, s2; char colon; istringstream iss1(times[i-1]); istringstream iss2(times[i]); iss1 >> h1 >> colon >> m1 >> colon >> s1; iss2 >> h2 >> colon >> m2 >> colon >> s2; int seconds1 = h1 * 3600 + m1 * 60 + s1; int seconds = h2 * 3600 + m2 * 60 + s2; if (seconds < seconds1) { seconds += 86400; // 加上一天的秒数 } int diff = seconds - seconds1; double rs = diff / 60.0; ostringstream oss; oss << fixed << setprecision(10) << rs; ans.push_back(oss.str()); } return ans; } int main() { int n; cin >> n; vector<string> times(n); for (int i = 0; i < n; ++i) { cin >> times[i]; } vector<string> res = solve(n, times); for (int i = 0; i < res.size(); ++i) { cout << res[i]; if (i < res.size() - 1) cout << " "; } cout << endl; return 0; }
数学题
牛牛最近在做比大小的小学数学题目,每个题目可以表示为:a op b ( ) b op a 。
a,b 分别表示两个正整数。op 表示一个数学意义上的运算符(包括加 + 减 - 乘 * 除 / 和乘方 ^ 运算)。
( ) 表示你需要填写的答案,是符号 =, < , > 其中的一个。
本题共有 t 组数据。
输入描述
第 1 行,一个正整数 t(1<=t <= 5*10^4) 表示数据的组数。
第 2 行到第 t+1 行,每行先给出 2 个正整数a,b (1<=a,b<=10^9),再给出一个符号 op 表示一组询问,其中 op是 +、-、*、/、^ 中的一个。
输出描述
输出 t 行,每行一个符号 ans 表示答案。
示例 1
输入
2 1 1
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布2024年(2025届)嵌入式软件开发相关岗位笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。