一些簡單的java編程題(3) ————小球落地問題

版權聲明:本文爲博主原創文章,未經博主允許不得轉載。

/* (程序頭部註釋開始)
版權聲明:保留個人權利。  如程序有不當之處,敬請指正。

* 文件名稱:  《一些簡單的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+"米");
	}

}
程序運行結果如下:




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章