写了个小程序试了下,如果不取精确到某位的近似值的话,估计应该是个无限循环吧。这个题挺有意思,期待高手指教。
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);
}
}
}
}