2021华为秋招软件开发笔试题

题目:
学校有一个在线学习系统,没门课程由N个页面组成(0< N<= 10000)个页面组成,学生从第一页开始按顺序学到最后一页提交学习记录。
系统会记录每页停留的时间(单位秒),当学生提交时会分析时间是否满足要求,分析规则如下:
每分钟(60秒)之内学完的页面不能大于4页。

例如系统记录到某学生页面停留时间如下:
10 120 10 20 10 10 50
该学生第一分钟学完1页,第二分钟学完0页,第三分钟学完5页,第四分钟学完1页,则判定为不满足要求。

输入描述:
输入数据包含多个学生的提交记录,第一行是整数表示记录个数,每个记录占一行,每行的第一个数是N,表示页面数,然后是每个页面的学习时间。
输出描述:
对于每组输入数据,满足输出1,不满足输出0,每组输出占一行。

输入

5
2 10 10
4 10 15 20 30
5 10 10 10 10 10
6 10 20 20 70 10 10
8 10 120 10 10 10 10 10 10

输出

1
1
0
1
0

思路1:
统计每一个自然的分钟中,翻过的页数。如果sum大于60s的话就取余,并且将页数清零;如果sum小于等于60s,则累加页数,大于4的话就返回0。遍历数组之后,返回1。
代码1:

#include <iostream>
#include <vector>
using namespace std;
int process(vector<int> &vec)
{
    int pages = 0, sum = 0;
    for (auto it:vec) {
        sum += it;
        if (sum > 60) {
            sum %= 60;
            pages = 0;
        }
        ++pages;
        if (pages > 4) {
            return 0;
        }
    }
    return 1;
}
int main()
{
    int input = 0;
    vector<int> ans;
    cin >> input;
    while (input--) {
        int n = 0, tmp = 0;
        vector<int> numbers;
        cin >> n;
        for (int i = 0; i < n; ++i) {
            cin >> tmp;
            numbers.push_back(tmp);
        }
        ans.push_back(process(numbers));
    }
    for (auto it : ans) {
        cout << it << endl;
    }
    return 0;
}

思路2:

累加处理数组中的每一个数,整除60,然后把这个数放到应该在桶中,
最后遍历数组桶中,如果有一个桶中的值大于4的话则返回0;
否则返回1。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 华为海思2021数字芯片IC的笔试题目主要分为两部分,一部分是单选题和多选题,另一部分则是编程题。 单选题和多选题主要考察对数字电路和计算机原理的理解,题目涵盖了数字信号处理、数制转换、寄存器、存储器、逻辑门电路等方面的知识。需要注意的是,有些题目看似简单但是需要注意细节,例如计算机的存储空间测量单位是字节而不是位。 编程题则需要根据题目要求编写相应的程序。一般来说,编程题比较难,需要对编程语言和算法都有比较深的理解。此次考试的编程题主要考查了对链表的理解和程序设计能力。 通过本次考试,可以看出华为海思2021数字芯片IC的笔试题目难度较大,需要对相关领域有深入的掌握和理解。在备考期间,应该多加练习和思考,增加对基础知识的掌握和应用能力。 ### 回答2: 华为海思2021数字芯片IC笔试题主要考察了应聘者对于数字电路设计的相关知识点的理解和应用能力。测试题分为两部分,一部分是基础知识选择题,另一部分是设计题。 基础知识选择题主要考察了应聘者对于数字电路、布尔代数、时序分析等基础知识点的了解。比如,有一道题目是让应聘者判断一段代码是否可以正确地实现计数器功能。这需要应聘者对计数器的基本组成原理和实现方法有充分的了解。 设计题则更加考验应聘者的应用能力。其中,一道题目要求应聘者根据给定的电路输入、输出和时钟信号,设计出一个可靠稳定的时序电路。这需要应聘者对时序电路的编程能力、逻辑设计和时序分析能力有较高的掌握。 对于应聘者而言,需要提前充分准备,熟悉数字电路设计相关知识点,深入理解数字电路的实现原理和设计方法。同时,要注重考虑实际应用需求和技术实现可行性,保证设计方案的有效性。只有全面掌握相关知识和技能,才能在笔试中取得更好的成绩,从而在海思数字芯片IC设计岗位中取得更好的工作机会。 ### 回答3: 华为海思2021数字芯片IC笔试题主要考察了应聘者在数字电路设计、Verilog语言、RTL综合等方面的知识掌握程度和综合应用能力。试题设计难度适中,较为贴近实际工作中的应用场景。 第一题是给定一组规定的时序图,要求设计Verilog代码和RTL电路图,实现一个4位带使能端的同步锁存器。此题考查了对时序逻辑电路的理解,需要应聘者能够将时序图抽象成基本的组合逻辑与时序逻辑模块,结合Verilog语言编写可合成的Verilog代码和RTL电路图。 第二题是仿真题目,要求给定Verilog代码进行仿真,并观测输出信号,分析仿真结论。此题考查了对数字电路仿真的能力和Verilog语言的掌握程度,需要应聘者熟悉Verilog仿真工具的使用方法,能够正确编写测试代码,并对仿真结果进行分析。 第三题是RTL综合题目,给定Verilog代码,要求进行RTL综合并生成门级网表文件。此题考查了对数字电路综合的理解和工具使用能力,需要应聘者熟悉数字电路综合的各项规则,能够正确地进行综合操作,并生成准确的门级网表文件。 总体来说,华为海思2021数字芯片IC笔试题考查了应聘者的数字电路设计和RTL综合等方面的综合应用能力,较为贴近实际工作。应聘者可以通过思考、练习和掌握基本的数字电路设计和RTL综合知识,提升答题能力和应用水平,更好地应对类似的笔试题目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值