您的位置:首页 > 编程语言 > Java开发

一些简单的java编程题(3) ————小球落地问题

2018-01-30 21:22 288 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。

/* (程序头部注释开始)
版权声明:保留个人权利。 如程序有不当之处,敬请指正。

* 文件名称: 《一些简单的java编程题(3) ————小球落地问题》
* 作 者: 那就去巴黎
* 完成日期: 2018 年 01 月 30 日
* 版 本 号: JDK 9.0.1

问题描述:
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下。求它在 第 n 次落地时,经过的路程?第 n 次落地后反弹多高?

题目分析:
第一次落地时,经过的路程为起始高度,之后每次加上上一次后反弹高度的两倍。
例如:第二次落地时,路程为 起始高度+第一次落地后反弹高度的两倍。
第三次落地时,路程为 起始高度+第一次落地后反弹高度的两倍+第二次落地后反弹高度的两倍。

* (程序头部的注释结束)
*/

package questions;
import java.util.Scanner; //导入java.util包中的Scanner这个工具类
public class Q3
{
public static void main(String[] args)
{
System.out.print("请输入小球第一次落地前的起始高度和落地反弹的次数:");
Scanner scan = new Scanner(System.in);
scan.useDelimiter("\\s"); // Scanner.useDelimiter 方法接受一个正则表达式。 "\\s" :正则表达式,表示以一个空白字符(A whitespace character)为分隔符。
double h = scan.nextDouble();
int n = scan.nextInt();
distance(h,n);
scan.close(); // 关闭配置内存
}

private static void distance(double h, int n)
{
double length=0;
double firstdistance=h; // 把起始高度先提取出来
for(int i=0;i<n;i++)
{
length+=2*h;
h/=2;
}
length-=firstdistance; //得到总路程
System.out.println("第"+n+"次落地时,小球共经过"+length+"米,"+"第"+n+"次落地后反弹高度为"+h+"米");
}

}程序运行结果如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 小球落地 编程