已经定好了每次反弹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); } }