华为OD机试
楼主非科班出身,基础渣,在题库里刷了30道比较简单的题就硬着头皮上了,用的C++
1. 排序题 将学生按身高排序,身高一样的按体重排序,体重也一样的就保持顺序不变。
输入:
4
100 110 120 130
30 40 50 60
第一行为学生数量,第二行为身高,第三行为体重。
复习时间比较短,什么set dict map全不会,用了最原始的数组。
用三个数组分别存身高体重和序号,先给身高排序,交换顺序的时候同时把体重和序号的顺序也交换了。然后先用同样的方法把体重排序(前提是身高相同),最后输出序号的数组。100%通过
2.工号题,工号由字母和数字组成,必须有字母,可以没有数字,数字可以全是0。已知需要的工号数量和字母的位数,求数字的位数。
输入:260 1
260表示需要的工号数x,1表示字母的位数y。输出需要的数字位数z为1。另外示例提示了如果需要的数字位数为0,仍然输出1.
这个比较简单,就是26^y * 10^z >=x ,求z就可以。注意x可能很大,需要为long型,不然只能过一部分。
这个也是100%通过。
3.叠积木,坛里的原题,考试前看到了,但是依然不会做😭。这个最后没拿分。不过前两题100%已经可以保证通过机试了。
总的来说这次机考运气还算好😂,没遇到特别偏的题。正式考的IDE不能设断点,调试的时候有点麻烦,好在题目上说可以用本地IDE。