[問題] 請問這樣的程式要怎麼改成遞迴已回收

看板MATLAB作者 (帥氣又拉風)時間15年前 (2011/03/20 02:04), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
原程式為 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)
文章代碼(AID): #1DXF13ki (MATLAB)
文章代碼(AID): #1DXF13ki (MATLAB)