标题:菜鸟初来乍到,请各位大佬看看这题错哪儿了
只看楼主
Jason_
Rank: 2
来 自:浙江台州
等 级:论坛游民
帖 子:88
专家分:66
注 册:2019-7-14
结帖率:66.67%
 问题点数:0 回复次数:6 
菜鸟初来乍到,请各位大佬看看这题错哪儿了
题目描述
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时将反弹多高?此时共经过多少米?答案保留两位小数。
输入为n和m两个值
输出为它在第N次落地时将反弹多高?落地时共经过多少米?结果保留两位小数
程序代码:
#include <bits/stdc++.h>
using namespace std;
int m,n;
double ans,t;
int main()
{
    cin>>m>>n;
    t=m;
    for (int i=1; i<=n; i++)
    {
        t=t/2;
        ans=ans+t;
    }
    ans+=m; 
    printf ("%.2lf %.2lf",t,ans);
    return 0;
}
搜索更多相关主题的帖子: 多少 保留 小数 std int 
2019-07-15 21:05
Jason_
Rank: 2
来 自:浙江台州
等 级:论坛游民
帖 子:88
专家分:66
注 册:2019-7-14
得分:0 
最后是一共经过了多少米少了很多,哪位大佬能帮我找出错误?
在线等!
2019-07-15 21:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <iostream>
using namespace std;

int main( void )
{
    double m;
    unsigned n;
    cin >> m >> n;

    double rebound = m;
    double distance = -m;
    for( unsigned i=0; i!=n; ++i )
    {
        distance += 2*rebound;
        rebound /= 2;
    }

    printf( "%.2lf %.2lf\n", rebound, distance );
}

或者直接

程序代码:
#include <iostream>
#include <cmath>
using namespace std;

int main( void )
{
    double m;
    unsigned n;
    cin >> m >> n;

    double rebound = m*exp2(0.-n);
    double distance = m*(3-exp2(2.-n));

    printf( "%.2lf %.2lf\n", rebound, distance );
}

2019-07-16 08:55
Jason_
Rank: 2
来 自:浙江台州
等 级:论坛游民
帖 子:88
专家分:66
注 册:2019-7-14
得分:0 
回复 3楼 rjsp
这个exp是什么用处的?
小弟刚学,不太明白。
2019-07-16 17:26
Jason_
Rank: 2
来 自:浙江台州
等 级:论坛游民
帖 子:88
专家分:66
注 册:2019-7-14
得分:0 
回复 3楼 rjsp
另外这一题应该不需要用到unsigned,int已经足够了
2019-07-16 17:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用Jason_在2019-7-16 17:26:46的发言:

这个exp是什么用处的?
我代码中没有用到 exp,我用的是 exp2。
如果你问 exp 是干什么用的话,参加 https://en.
如果你问 exp2 是干什么用的话,参加 https://en.

以下是引用Jason_在2019-7-16 17:30:40的发言:

另外这一题应该不需要用到unsigned,int已经足够了
这外行话是你老师教的吗?如果是,自求多福;如果不是,那就上课认真听讲。
2019-07-17 10:32
天空之程
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-4-19
得分:0 
你好!你看这样行不?
#include <bits/stdc++.h>
using namespace std;
int m,n;
double ans,t,t1;
int main()
{
    cin>>m>>n;
    t=m;
    for (int i=1; i<=n; i++)
    {
        ans=ans+t1*2;
        t=t/2;
        t1=t;
    }
    ans+=m;
    printf ("%.2lf %.2lf",t,ans);
    return 0;
}
2019-07-17 17:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-495873-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.660675 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved