解题思路: 明白了经过的路程为初始路程+每次反弹高度*2,第N次反弹的高度为第N下落的高度/2就不难解了。
注意事项: 每次反弹的高度为下落高度的一半,第N次反弹高度在计算完路程之后要再除以2.
参考代码:
import java.util.Scanner; public class Main { public static void ballDropDistance(double height,int n) { double startingHeight = height; double totalDistance = height; double reboundHeight = height; int lossMultiple = 2; for (int i = 1; i < n; i++) { totalDistance += 2*height/lossMultiple; height /= lossMultiple; } reboundHeight = height/lossMultiple; System.out.println(String.format("%.2f",reboundHeight)+" "+String.format("%.2f",totalDistance)); } public static void main(String[] args) { int Height,nth; Scanner sc = new Scanner(System.in); Height = sc.nextInt(); nth = sc.nextInt(); ballDropDistance(Height,nth); } }
0.0分
2 人评分
简单的a+b (C语言代码)浏览:528 |
C语言训练-自由落体问题 (C语言代码)浏览:615 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:528 |
字符逆序 (C语言代码)浏览:460 |
DNA (C语言代码)浏览:749 |
C二级辅导-等差数列 (C语言代码)浏览:770 |
1074(纳闷了,答案错误,求指教)浏览:362 |
C二级辅导-求偶数和 (C语言指针动态内存法)浏览:641 |
A+B for Input-Output Practice (C语言代码)浏览:471 |
陶陶摘苹果 (C语言代码)浏览:593 |