[問題]matlab跑迴圈一直當機
在下matlab新手,想要先模擬小位數除法來寫大數運算的除法部分
程式跑的時候跑很久,一直在Busy有點貌似當機
附上新手的程式碼想請問到底是哪裏出了問題 > <
Aa(1:6)=[0 6 3 1 2 0]; %被除數Aa=21360
Bb=[3 1]; %除數Bb=13
Al=length(Aa)-1;
Bl=length(Bb);
C_temp(1:Al-Bl+1)=0; %運算結果放入C_temp中
%--------------------
for i=(Al-Bl):-1:0;
callback=Check(Aa,Bb,Bl,i);
while callback==1;
C_temp(i+1)=C_temp(i+1)+1;
for k=1:Bl;
Aa(i+k)=Aa(i+k)-Bb(k);
if Aa(i+k)<0;
Aa(i+k)=Aa(i+k)+10;
Aa(i+k+1)=Aa(i+k+1)-1;
end
end
end
while callback==0;
Aa(i+Bl-1)=Aa(i+Bl)*10+Aa(i+Bl-1);
Aa(i+Bl)=0;
end
end
%---------------------------------------------
function callback = Check( Aa,Bb,Bl,i )
callback=1;
for j=Bl:-1:1;
if Aa(i+j)>Bb(j);
callback=1;
break
elseif Aa(i+j)==Bb(j);
callback=1;
else Aa(i+j)<Bb(j);
callback=0;
end
end
end
程式碼很粗淺,新手想不到更好的方法寫除法了= =
謝謝各位高手!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 115.82.20.116
→
09/03 23:01, , 1F
09/03 23:01, 1F