看板 java 關於我們 聯絡資訊
小弟愚鈍,以下問題想問: public static int output[]=new int[1000]; public static int fib(int n){ int result; result=output[n]; if(result==0){ if(n==0) return 0; if(n==1) return 1; else: return (fib(n-1)+fib(n-2)); } output[n]=result; return result; } 想了解以上動態規劃法中,已經有return 數值,最後再return result代表? 還有當n==4時,result及output的變化? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.164.203.213 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/java/M.1750497045.A.A16.html
ssccg: 因為這程式是錯的 06/21 23:34
ssccg: output一開始全部都是0,這程式全都return不會更新output 06/21 23:35
ssccg: 至少else裡面return必須改成result =,或是這整個function 06/21 23:37
ssccg: result這變數多餘的,全換成output[n]且else用output[n] = 06/21 23:38
southen4: 感謝大大 06/21 23:53