作者superlubu (劲过吕布)
看板java
标题Re: [问题] JAVA
时间Thu Jul 12 16:23:05 2007
你的那个 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)