首页 > 代码库 > 华为测试 求小球落地5次后所经历的路程和第5次反弹的高度

华为测试 求小球落地5次后所经历的路程和第5次反弹的高度

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

输入起始高度,int型

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

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

样例输入:1

样例输出:2.875

                    0.03125

#include<iostream>
using namespace std;
double high(double H,int N);
double total(double H,int N);
int main()
{
	int height;
	double Total;
	cin>>height;
	double fif;
	Total=total(height,5);
	fif=high(height,5);
	cout<<Total<<endl;
	cout<<fif;
	return 0;
}
double high(double H,int N)
{
	if(N==1)
		return H/2;
	else
		return high(H/2,N-1);
}
double total(double H,int N)
{
	if(N==1)
		return H;
	else 
		return 2*high(H,N-1)+total(H,N-1);
}