トピック情報
ボールが任意の高さから自由に落下し、着地するたびに元の高さの半分に跳ね返るとします。ボールが再び落下した場合、5回目の着地で何メートルかかりますか?5回目の跳ね返りの高さはどれくらいですか?
初期の高さはint型で、最終的なエラー判定は小数点以下6桁です。
回答
下の図に示すように、初期の高さは高さ、緑の高さは各着陸の距離、黄色の背景は各跳ね返りの高さです。
5つの踊り場の合計の高さは次のとおりです。高さ+高さ/ 2 +高さ/ 2 +高さ/ 4 +高さ/ 4 +高さ/ 8 +高さ/ 8 +高さ/ 16 +高さ/ 16 = 23高さ/ 8
5つのリバウンドの高さは次のとおりです:height / 32
コーディング
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BallFall {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input;
while((input = br.readLine()) != null) {
double startHeight = Integer.parseInt(input);
double sumHeight = 23 * startHeight / 8;
System.out.println(sumHeight);
double reverseFall = startHeight / 32;
System.out.println( reverseFall);
}
}
}