//如果是店和花交替出现,则如下:
public class Demo
{
public static void main( String[] args)
{
float wine = 0.5f; //第5次遇花时喝了1斗,喝光了,即第5次遇店后有酒1斗,遇店前有酒0.5斗
for (int i=4; i>0; i--)
{
wine = (wine+1)/2; //从第5次遇店前开始往上倒推,上一次遇店加酒后有酒应为上次见花时喝了的1斗和喝了后剩的酒之和
System.out.println(wine); //则加酒前为加酒后的一半。这里计算的正是加酒前的量。
//当i=1,即为计算第一次遇店前,壶里酒的量
}
System.out.println("壶中原有酒:"+wine+"斗");
}
}
//如果是先遇5次店再遇5次花,则如下:
/*
public class Demo
{
public static void main( String[] args)
{
float wine = 5f; //第5次遇店后有酒5斗
for (int i=5; i>0; i--)
{
wine = wine/2; // 每次遇店加一倍,则上一次遇店前,壶里酒的量是遇店后的一半,这里计算加酒前的量
System.out.println(wine);
}
System.out.println("壶中原有酒:"+wine+"斗");
}
}
*/ |