matlab学习

matlab 猜数字(4位不同数字)

2019-06-21  本文已影响0人  Kerwin_H

%猜4为数字游戏

a=fix(10000*rand(1));%随机生成一个四位数;

A(1)=fix(a/1000);

A(2)=fix((a-1000*A(1))/100);

A(3)=fix((a-1000*A(1)-100*A(2))/10);

A(4)=a-1000*A(1)-100*A(2)-10*A(3);

%下面保证生成一个各位上各个单独数字不同;

while(A(1)==A(2)||A(1)==A(3)||A(1)==A(4)||A(2)==A(3)||A(2)==A(4)||A(3)==A(4)||(1000*A(1)+100*A(2)+10*A(3)+A(4))<1000)

a=fix(10000*rand(1));

A(1)=fix(a/1000);

A(2)=fix((a-1000*A(1))/100);

A(3)=fix((a-1000*A(1)-100*A(2))/10);

A(4)=a-1000*A(1)-100*A(2)-10*A(3);

end

% disp(a);

k=0;k1=0;k2=0;

while(k<10) %控制猜数次数在10次以内

disp('Input a number:');

n=input('');

N(1)=fix(n/1000);

N(2)=fix((n-1000*N(1))/100);

N(3)=fix((n-1000*N(1)-100*N(2))/10);

N(4)=n-1000*N(1)-100*N(2)-10*N(3);

k1=0;k2=0;

for i=1:4

    for j=1:4

        if(A(i)==N(j))

          if((A(i)==N(j))&&(i==j))

              k1=k1+1; %猜对的数字个数;

          else

          k2=k2+1; %猜错的数字个数

          end

        end

    end

end

if(k1==4) %表示四个数字都猜对,这个四位数猜对成功!

fprintf('%iA\n You got it!\n',k1);

break;

end

fprintf('%iA%iB\n',k1,k2);

disp('Come on !');

k=k+1;

end

fprintf('The number is %i!\n',a); 

上一篇 下一篇

猜你喜欢

热点阅读