首页 > 试题广场 >

弹地小球

[编程题]弹地小球
  • 热度指数:6337 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
一个小球,从高为H的地方下落,下落弹地之后弹起高度为下落时的一半,比如第一次弹起高度为H/2,如此往复,计算从小球高度下落到第次弹地往返的总路程。

输入描述:
输入第一行为样例数m,接下来m行每行两个整数H和n,n不超过5。


输出描述:
输出m行,表示所求总路程,结果保留小数点后两位。
示例1

输入

1
5 2

输出

10.00
Java
import java.text.DecimalFormat;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        for (int i = 0; i < n; i++) {
            double h = scanner.nextDouble();
            int t = scanner.nextInt();
            //题意: 计算从小球H 高度下落到第n 次弹地往返的总路程
            double sum  =0;
            for (int j = 0; j < t-1; j++) {
                sum+=h*1.5;
                h/=2;
            }
            sum+=h;
            
            DecimalFormat f = new DecimalFormat("0.00");
            System.out.println(f.format(sum));

        }
    }
}


发表于 2020-03-20 18:42:41 回复(0)

问题信息

上传者:小小
难度:
1条回答 5120浏览

热门推荐

通过挑战的用户

查看代码