题解 | #求小球落地5次后所经历的路程和第5次反弹的高度#

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

http://www.nowcoder.com/practice/2f6f9339d151410583459847ecc98446

题意:
        

方法一:
模拟

思路:
        根据题意直接模拟,计算出路程总和,反弹的高度。
        并输出。



#include <bits/stdc++.h>

using namespace std;

int main(){
    double x,sum=0;//sum表示路程总和,x表示反弹的高度
    cin >> x;
    sum+=x;
    for(int i=1;i<5;i++){
        sum+=x;//路程累加
        x/=2;//反弹高度减半
    }
    printf("%.6f\n%.6f\n",sum,x/2);
    return 0;
}



时间复杂度:
空间复杂度:

方法二:
公式法


思路:
    将方法一中的常数级别的循环变为直接求解。
    按照下图所示:
        
#include <bits/stdc++.h>

using namespace std;

int main(){
    double x;
    cin >> x;
    printf("%.6f\n%.6f\n",23.0/8*x,x/32);//公式计算输出
    return 0;
}



时间复杂度:
空间复杂度:


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务