你的那個 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)