作者dj41u39 (heyheyhey)
看板MATLAB
标题[问题]matlab跑回圈一直当机
时间Mon Aug 27 14:16:38 2012
在下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
1F:→ x46824682x:不要用";"看他有没有反应 09/03 23:01