【华为OJ】小球落地5次

假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?

/**

* 统计出第5次落地时,共经过多少米?

*

* @param high 球的起始高度

* @return 英文字母的个数

*/

public static double getJourney(int high)

{

return 0;

}

/**

* 统计出第5次反弹多高?

*

* @param high 球的起始高度

* @return 空格的个数

*/

public static double getTenthHigh(int high)

{

return 0;

}

知识点: 查找,搜索,排序

练习阶段: 中级

运行时间限制: 10Sec

内存限制: 128MByte

输入:输入起始高度,int型

输出:分别输出第5次落地时,共经过多少米第5次反弹多高

【去掉小数末尾无效的0】

样例输入: 1

样例输出: 2.875

0.03125

注意物理知识:假设小球每次落地后的反弹高度是其下落高度的一半。

个人认为难度系数:很低,但这题的分数是200分。

代码:

#include <iostream>
using namespace std;
int main()
{
	double height,s;
	int i=0,n=5;
	cin>>height;
	s=height;
	if(height<0)
	{
		return 0;
	}
	for(i=1;i<n;i++)
	{
		height=0.5*height;
		s=s+height*2;
	}
	height=height*0.5;
	cout<<s<<endl;
	cout<<height<<endl;
	return 0;
}

经验分享 程序员 微信小程序 职场和发展