java编程一个球从100米处落下,反弹回原来高度的一半,行程200米反弹多少次

2025年05月03日 13:57
有1个网友回答
网友(1):

写了个小程序试了下,如果不取精确到某位的近似值的话,估计应该是个无限循环吧。这个题挺有意思,期待高手指教。
import java.math.BigDecimal;
public class fantan200m {
public static void main(String[] args){
BigDecimal total=new BigDecimal(200);
BigDecimal journeyInit=new BigDecimal(100);
BigDecimal journey=new BigDecimal(100);
BigDecimal divisor=new BigDecimal(2);
int count=0;
while(true){
if(journey==total||count==2000){
System.out.println("finish!");
System.out.println("total count="+count);
break;
}else{
count++;
BigDecimal fantan=journeyInit.divide(divisor);
journeyInit=fantan;
journey=journey.add(fantan);
System.out.println("journey."+count+"="+journey);
}
}
}
}