阿里-近期笔试杂谈
首先,个人算是编程小白,机械电子工程专业的,主要做的项目也偏机械。平时也就只用matlab做做数据处理和绘图,其它语言语法都忘了😥。
谈谈这次阿里笔试的两道编程题;
编程题一般给定一个场景问题,本质是处理数组或矩阵数据,通过一定逻辑,最终输出结果。总体来看第一道是处理数组的一维问题,第二道是处理矩阵数据问题。
编程小白,花了50分钟才刚有第一题的整体思路,难受啊😫,后续花了半小时终于编出来了,其实好像并不难。如果提前准备,刷刷题,绝对能尽快建立编程思路。
第一题:吃饼大赛问题(我理解的意思如下,题目说的比较绕😂)
n个盘子一字排开,第i个盘子里有Si个饼,规定参赛者只能按顺序吃,每次拿盘子里的1个吃,吃到空盘子,折返从头继续按顺序吃,每次还是吃1个,直到第1个盘子光盘。
编程如下,个人感觉应该对了。没想到允许用MATLAB编程😏╰(*°▽°*)╯
clear clc n = input(''); S = input('', 's'); sum = 0; Si = str2num(S); for j=1:n if Si(j)<1 Si2 = Si; Si = []; for k = 1:j Si(k) = Si2(k); end break; else continue; end end flag = 1; while flag for i=1:1:length(Si) if Si(i)>=1 sum = sum + 1; Si(i) = Si(i)-1 elseif Si(1) >=1 i = 1; continue; else flag = 0; break; end end end sum