码迷,mamicode.com
首页 > 其他好文 > 详细

【笔试】10、一球从100米高度自由落下,求相关数据

时间:2015-08-09 22:42:36      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:java   球从100米高度自由落下   

/**
 * 题目:一球从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);

	}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

【笔试】10、一球从100米高度自由落下,求相关数据

标签:java   球从100米高度自由落下   

原文地址:http://blog.csdn.net/cutter_point/article/details/47379821

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!