写作时间:2020-07-21
目录:
1.问题
2.代码
3.点评
正文
1.问题
一个班上有66个人,要把人分成3组,先排成一行,从1开始“1-2-3”循环报数,报1的为A组,报2的为B组,报3的为C组。
2.代码
代码1:
P=1:1:66;
k1=0;
k2=0;
k3=0;
A=zeros(22,1);
B=zeros(22,1);
C=zeros(22,1);
for ii=1:66
if mod(ii,3)==1
k1=k1+1;
A(k1)=P(ii);
elseif mod(ii,3)==2
k2=k2+1;
B(k2)=P(ii);
else %mod(ii,3)==0
k3=k3+1;
C(k3)=P(ii);
end
end
代码2:
P=1:1:66;
A=zeros(22,1);
B=zeros(22,1);
C=zeros(22,1);
for ii=1:22
A(ii)=P(3*(ii-1)+1);
B(ii)=P(3*(ii-1)+2);
C(ii)=P(3*(ii-1)+3);
end
运行结果:
3.点评
代码1比代码2好理解。
代码1是正向思维。
代码2是逆向思维。
代码2简洁,循环次数少,无需条件判断语句,执行速度快。
使用代码1的人有规矩有条理,使用代码2的人很聪明。
THE END~