/** * 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? * 时间:2015年7月28日15:34:18 * 文件:Lianxi10.java * 作者:cutter_point */ package bishi.zuixin50.t2015728; public class Lianxi10 { //这个是一个等比数列 public static double getAn(double begin, double n) { //求第n次落地的时候反弹的高度,也就是第11次的高度 //类似等比数列a:n = a:1 / pow(2, n-1) double pow = Math.pow(2.0, n); return begin / pow; } //计算进过的距离 /** * 等比数列求和 * @param begin 球开始落下的地方 * @param q 我们比值 * @param n 几个数 * @return */ public static double getLength(double begin, double q, double n) { //我们的公式是S:n = (a:1 * ( 1 - q(n次方))) / (1 - q) //这里得公式是S:n = 0.5 * S:n-1 + 150==》S:n = -((100)/pow(2, n-2)) + 300 //这个歌sn是:100(3*n + 1/(2:(n-2)) - 4) double length = begin * (3 - Math.pow(q, n - 2)); return length; } public static void main(String[] args) { System.out.println("第10次反弹的高度是:" + getAn(100, 10)); System.out.println("走过的距离是:" + getLength(100, 0.5, 10)); double h = 100,s = 100; for(int i = 1; i < 10; ++i) { s += h; h /= 2; } System.out.println("经过路程:" + s); System.out.println("反弹高度:" + h / 2); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-05 06:05:19