科大讯飞嵌入式软件笔试编程题
《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj
《嵌入式软件笔试-2023年真题汇总》:https://blog.nowcoder.net/zhuanlan/0oDWVm
《嵌入式软件笔试-2024年真题汇总》:https://blog.nowcoder.net/zhuanlan/04yYym
第一题
题意
给定一棵树,每个节点有一个权值。现在每次可以交换任意两个节点的权值,请问最少多少次交换可以使得每个节点的权值等于它的编号?保证给出的权值是一个排列,也就是说保证一定有解。
输入描述
第一行输入一个正整数n,代表树上的节点数量。
第二行输入n个正整数,第个正整数是号节点的权值,互不相同。
接下来的n - 1行,每行输入两个正整数和,代表号节点和号节点有一条边相连。
输出描述
一个整数,代表最小的交换次数。
示例1:
输入:
4 2 1 4 3 1 2 2 3 2 4
输出:
2
#include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N = 1007; int a[N]; int main() { int n; cin >> n; for(int i = 1; i <= n; i ++) cin >> a[i]; for(int i = 1; i < n; i ++) { int x, y; cin >> x >> y; } int res = 0; for(int i = n; i >= 1; i --) { while(a[i] != i) { res ++; swap(a[i], a[a[i]]); } } cout << res; return 0; }
第二题
题意
东八区(UTC/GMT+08:00)是比世界协调时间(UTC)/格林尼治时间(GMT)快8小时的时区,理论上的位智是位于东经112.5度至127.5度之间,在此15度的范围内,统一采用以东经120度中心线的地方时间为准。是东盟标准的其中一个候选时区。当格林尼治标准时间为00:00时东八区的标准时间为08:00。
输入描述
每个测试文件均包含多组测试数据。第一行输入一个整数代表数据组数,每组测试数据描述如下:
在一行上输入一个格式为"小时:分钟"的北京时间(24小时制)
输出描述
对于每一组测试数据,在一行上输出对应的世界协调时间,注意小时和分钟都应当补0至两位数。
示例1:
输入:
2 8:30 00:00
输出:
00:30 16:00
#include <iostream> #include <cstring> #include <algorithm> using namespace std; int main() { int t; scanf("%d", &t); while(t -- ) { int h, m; int mi = 0; scanf("%d:%d", &h, &m); mi = h * 60 + m; mi -=
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏主要发布2024年(2025届)嵌入式软件开发相关岗位笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。