看板 java 關於我們 聯絡資訊
你的那個 input, 會落在這個 branch 上 else if(y>=max(x,y,z)){ for(int n=0; n<=G; n=n+g2){ for(int m=0; m<=S; m=m+s2){ for(int o=0; o<=C; o=o+c2){ if(G>=g2 && S>=s2 && C>=c2){ G=G-g2; S=S-s2; C=C-c2; total=total+price2; } } } } 然後,c2 = 0, 所以 for(int o=0; o<=C; o=o+c2) 是個 infinity loop. 其實這些跌落無限迴圈的錯誤,最好是在每個 branch 上加一個 System.out.println("HI 1"); 1, 2, 3.... 這樣的 HI 下去 XD,很容易就找到在哪個 branch 上出了問題 之後再加幾個找錯用的 println 就會知道問題出在哪的了 (話說除了這一段之外,其他的好像都有相同問題,總括來說,就是有 些該 check 是否 >0 的輸入沒有好好的 check 一下) -- 《為了要得到真相,就要向原 PO 伸圖》 那就是伸圖魔人的沒圖沒真相原則,那時我們堅信那就是逼逼死的真實 靠么,圖咧? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 147.8.130.225 ※ 編輯: superlubu 來自: 147.8.130.225 (07/12 16:32)