阿里-近期笔试杂谈
首先,个人算是编程小白,机械电子工程专业的,主要做的项目也偏机械。平时也就只用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

查看14道真题和解析