public class Test3 {
public static void meth(int num){
int total = 0;  
        int height = 100;  
        for (int i = 0; i < num; i++) {  
            total = total + height;  
            height = height / 2;  
        }  
        System.out.println("第" + num + "次反弹:" + height + "米  ,"+"第" + num + "次落下经过距离:" + total+"米");  
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第N次数:");
int n = scanner.nextInt();
meth(n);
}
}

解决方案 »

  1.   


    public class Demo1
    {
           public static void main(String[] args)
    {
    System.out.println(method(4));
    }
           
         public static double method(int n)
         {
          //第一次下落距离为100,所以初始化值sum=100
          double sum=100;
          //i<n,因为初始化第一次值为100,即sum值为100,i=1,其实是下落第二次,所以i<n
          for(int i=1;i<n;i++)
          {
         sum+=((100/Math.pow(2, i))*2);//每次下落弹起,所以距离乘2
          }
          return sum;
         }
    }
      

  2.   

    import java.util.Scanner;
    public class TestQiu {
    public static void main(String[] args) {
    System.out.println("請輸入彈跳次數");
    Scanner scn=new Scanner(System.in);
    int num=scn.nextInt();
    System.out.print("共經"+new TestQiu().getHightNum(num)+"米");
    }
    public double getHightNum(int n)
    {
      int iHightNum=100;
      double total=0.0;
      for(int i=1;i<=n;i++)
      {
      total=total+iHightNum*1.5;
      iHightNum=iHightNum/2;
      }
    return total;

    }
    }