【MATLAB】简单的分队问题,测试你是正向思维or逆向思维

写作时间: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~

猜你喜欢

转载自blog.csdn.net/hahahahhahha/article/details/107489944
今日推荐