小球走过路程计算
📆Date: 2023年1月日
✒️Author: SmartBoy
📓Classify:蓝桥杯每日一题
🔖Language: Java
✨题目描述:
一球从h米高度自由落下,每次落地后反弹回原高度的一半再落下,求它在第n次落地时共经过了多少米?第n次反弹多高?
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
输入描述:
输入小球的初始高度和落地的次数(先输入小球初始高度再输入反弹次数)
输出描述:
输出小球反弹的高度和经过的距离(先输出反弹的高度再输出经过的距离,中间用空格隔开)
示例1
输入例子:
100 3
输出例子:
12.500 250.000
🎉解题思路:
根据题目给出的规律,高度每回弹一次变为一半,sum初始值定义为起始高度,之后累加上下两段h,最后需要减去最后一次的高度。
🥇Java源码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); float h = sc.nextFloat(); int n = sc.nextInt(); float sum = h; for (int i = 0; i < n; i++) { h = h / 2; sum = sum + h * 2; } sum = sum - h * 2; System.out.println(String.format("%.3f",h)+" "+String.format("%.3f",sum)); } }