已经定好了每次反弹1/2的高度,反弹5次。那输出的两个数直接算出来就可以了。麻烦的是小数位最长保留6位,只显示有效小数位,所以没办法格式化输出,只能自己动手了。
代码很简单,需要注意的是1.一定要先把int转成double再计算,不然结果不对;2.用.分割的时候需要写成"\.",不然识别不了。
就是不知道为什么运行时间那么长,感觉没做啥啊

import java.util.*;
public class Main{

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int high=sc.nextInt();
        double road=(double)high*23/8;
        double five=(double)high/32;
        String s1=String.valueOf(road);
        String s2=String.valueOf(five);
        String[] ss=s1.split("\\.");
        if(ss[1].length()>6){
            ss[1]=ss[1].substring(0,6);
        }
        s1=ss[0]+"."+ss[1];
        ss=s2.split("\\.");
        if(ss[1].length()>6){
            ss[1]=ss[1].substring(0,6);
        }
        s2=ss[0]+"."+ss[1];
        System.out.println(s1);
        System.out.println(s2);
    }
}