[問題] 請問這樣的程式要怎麼改成遞迴已回收
原程式為
err = 2^10; %一個限值
a = 1 : 4; %代表有1~4 四個變數
tim = 1; %計數器
while a(1) < err - length(a) + 1
a(4) = a(4) + 1;
if a(4) > err
a(3) = a(3) + 1;
if a(3) > err
a(2) = a(2) + 1;
if a(2) > err
a(1) = a(1) + 1;
a(2) = a(1) + 1;
end
a(3) = a(2) + 1;
end
a(4) = a(3) + 1;
end
tim = tim + 1;
end
tim
但當要計算的a變數數量增加時 if判斷式也會往中間不斷增加
最後a變數可能要增加到100個左右 即1:100
用if寫可能會寫到天荒地老 現在卡在不知道如何把if寫成for迴圈
以下是我已經寫好的 但是有一行我怎麼塞就是塞不進去(if之後的那行)
希望邏輯好的人可以幫幫我
function tim = test1(x)
err= 2^10; tim = 1;
a = 1 : x;
while a(1) < err - length(a) + 1
for i = length(a) : -1 : 2
if a(i) > err
a(i-1) = a(i-1) + 1;
a(i) = a(i) + 1;
end
% ????????????????????????????????????????
end
tim = tim + 1;
end
tim
那行不能放在if內 但我也不知道該放哪
在這先謝謝各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.237.166
※ 編輯: poiuy777 來自: 122.116.237.166 (07/06 23:27)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章