当前位置: 代码迷 >> Eclipse >> Java 自由落体有关问题
  详细解决方案

Java 自由落体有关问题

热度:106   发布时间:2016-04-23 02:10:28.0
Java 自由落体问题
一个球从100m高度自由落下,每次落地后反跳回原来高度的一半,再落下,再反弹.求它在第N次落地时共经过多少米? 


输入

反弹的次数N

输出
小球经过的路程(保留四位小数)

样例输入
2
样例输出
200.0000

import java.util.Scanner;


public class 简单循环题M {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner rd=new Scanner(System.in);
int N=rd.nextInt();
double total=100;
double sum=0;
for(int i=1;i<=N;i++)
{
total+=2*(100/Math.pow(2, N));
}
System.out.println(total);
}

}
应该怎样改

------解决方案--------------------
Java code
package com.fenghua;import java.util.Scanner;public class FreeFall {    // 第N次落地时的路程(默认起点为100m的高空,落点为地平线)    public static void main(String[] args) {        Scanner rd = new Scanner(System.in);        while (true) {            System.out.println("请输入第几次落地");            int n = rd.nextInt();            double total = 100;            double sum = 0;            if (n == 0)                break;            // 循环的意义在于将总的路程相加            for (int i = 0; i < 2 * n - 1; i++) {                sum += total;                // 每次落地之后反弹高度为原来的一半                if (i % 2 == 0) {                    total = total / 2;                }            }            System.out.println(sum);        }    }}
  相关解决方案