李白无事街上走,提壶去买酒。遇店加一倍,见花喝一斗,五遇花和店,喝光壶中酒,试问李白壶中原有多少斗酒?(使用for循环结构编程实现)小弟怎么也想不通,求高手讲解,先谢过了。

解决方案 »

  1.   

    for(){
      if(){
      }else{  }
    }
    遇店加一倍,见花喝一斗,五遇花和店条件给的如此齐,楼主没敲代码吧?
      

  2.   

    这个我知道啊,可是变量之间的关系搞不通,我是初学者,麻烦了。
    我写的错误代码如下:
    import java.util.*;
    public class lilun4 { /**
     * @param args
     */
    public static void main(String[] args) 
    {
            int jiu=0;
            
            Scanner input=new Scanner(System.in);
            System.out.print("遇到h还是d?:");
            String a=input.next();
            for(int i=1;i<=5;i++)
            {
             if(a=="h")
             {
             jiu=jiu-1;
             }
             else if(a=="d")
             {
             jiu=jiu*2;
             }
             System.out.println(jiu);
            } }}
      

  3.   

    double wine = 0;
    for(int i=0;i<5;i++){
    wine =(wine+1)/2;
    System.out.println(wine);
      

  4.   

    很简单啊!这是反推的过程,假设李白从第五家花店倒推回来的流程,最后酒壶数就是原来的酒量数。那么,李白第一个碰上的必须是花,也就是正常顺序的第五家。所以第一个wine=(wine+1)/2;循环5次后,就得酒数了,有何想不通的? 
      

  5.   

    楼上说的对.
    import java.util.*;
    public class Test1{
    public static void main(String[] args){
    //josephus(8,3);
    System.out.println(liBai()); }
    public static  float liBai(){
    float x=0.0f;
    for(int i=5;i>=1;i--){
    x+=1;
    System.out.println("第"+i+"次遇到花店前,壶中洒为:"+x);
    x/=2;
    System.out.println("第"+i+"次遇到酒店前,壶中洒为:"+x);
    }
    return x;
    }
    }
    F:\java>java Test1
    第5遇到花店前,壶中洒为:1.0
    第5遇到酒店前,壶中洒为:0.5
    第4遇到花店前,壶中洒为:1.5
    第4遇到酒店前,壶中洒为:0.75
    第3遇到花店前,壶中洒为:1.75
    第3遇到酒店前,壶中洒为:0.875
    第2遇到花店前,壶中洒为:1.875
    第2遇到酒店前,壶中洒为:0.9375
    第1遇到花店前,壶中洒为:1.9375
    第1遇到酒店前,壶中洒为:0.96875
    0.96875
      

  6.   

    public static float ramble() {

    float wine = 1;

    List<String> sign = new ArrayList<String>();
    sign.add("flower"); for (int i = 0; i < 4; i++) {

    int flag = (int) (Math.random() * 10) % 2; // flower
    if (flag == 0) {
    wine = wine + 1;
    sign.add("flower");
    } else {
    // shop
    wine = wine / 2;
    sign.add("shop");
    } }
    System.out.print("step : ");
    for(int i=1; i<=sign.size(); i++) {
    System.out.print(sign.get(sign.size() - i) + "\t");
    }

    return wine;
    }