描述: | 假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?
/**
|
知识点: | 算法,查找,搜索,排序 |
题目来源: | 内部整理 |
练习阶段: | 中级 |
运行时间限制: | 10Sec |
内存限制: | 128MByte |
输入: | 输入起始高度,int型 |
输出: | 分别输出第5次落地时,共经过多少米第5次反弹多高 【去掉小数末尾无效的0】 |
样例输入: | 1 |
样例输出: | 2.875 0.03125 |
首先,看完题目后,见题目中间给了两个方法,但事实上,这是基于输入输出的题目啊,不理解给出有何意义。
然后思路:这个题目难度就太简单了一点,就5次的情况下,且不是计算自由落体,而仅仅只要根据反弹一半高度就可以计算,那么字节拿初始高度来乘以算出的比例,即(1+0.5* 2 + 0.5* 0.5 * 2+0.5*0.5*0.5* 2 +0.5* 0.5*0.5*0.5* 2) 即可得到其经过的距离,拿高度乘以 0.5* 0.5*0.5*0.5 * 0.5 即可得到第5次反弹时的高度,而这在给出的样例输入输出中可以获得计算结果。
但是,输出要求中说到 【去掉小数末尾无效的0】
这是什么意思,哦,这是在废话。
提交:
#include <iostream>;
#include <string>
using namespace std;
void main(){
int high;
cin>>high;
cout<<(double)high * 2.875;
cout << (double ) high * 0.03125;
}
然后说我做错了,这就不可理喻了?错在哪里?
然后发现错误,没写endl。 这个错误以前做题目就经常出现,要注意啊。