1. java程序 一球從h米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第k次落
public static void main(String[] args) {
double h=100;
double sum=0;
for (int k = 1; k <=10; k++) {
sum+=h;
h=h*0.5;
if(k!=10){
sum+=h;
}
}
System.out.println(sum+","+h);
}
2. java自由落體題
發現「cloudhy」同學的程序,有點小問題,完善如下:
/**
*1. 模擬自由落體程序 程序描述:一個小球從100m高度自由落下,每次落地後反彈跳回原高度的一半,再落下。編程實現:
* 1)求小球在第5次落地時,一共經過多少m?
* 2) 第5次反彈高度多少m?
* 3) 將以上兩個計算結果的輸出。
*/
public class FreeFallen {
/**
* 計算第time次彈起的高度
*
* @param time 彈起的次數
*/
public static double countHeight(int time) {
double height = 100; //應該是double類型的,第三次彈起就是小數了
for (int i = 0; i < time; i++) {
height = height / 2;
}
return height;
}
/**
* 計算第time次落地後經過的距離
*
* @param time 落地的次數
*/
public static double countDistance(int time) {
double distance = 100; //總距離
double each; //每次經過的距離
for (int i = 1; i < time; i++) {
//distance += distance / 2;
each = countHeight(i-1); //每次彈起下落一回就等於上一次的高度,因為每次落地後反彈跳回原高度的一半
distance += each;
}
return distance;
}
public static void main(String[] args) {
System.out.println(countDistance(5));
System.out.println(countHeight(5));
}
}