科大讯飞嵌入式软件笔试编程题

《嵌入式软件开发笔试与面试手册》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年嵌入式软件开发相关岗位笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务