问题标题: 酷町堂:1010?

0
0
已解决
被禁言 姜成禹
姜成禹
新手守护
新手守护

1010   弹球高度

题目描述 Description

一球从某一高度落下(整数,单位米),每次落地后反跳回原来高度的一半,再落下。 编程计算气球在第8次落地时,共经过多少米? 第8次反弹多高?

输入描述 Input Description

输入一个整数h,表示球的初始高度。

输出描述 Output Description

输出包含两行,均保留四位小数(四舍五入)。
第1行:到球第8次落地时,一共经过的米数。
第2行:第8次弹跳的高度。

样例输入 Sample Input

 

20

样例输出 Sample Output

 

59.6875
0.0781

代码如下: 0分

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
    double n,sum=0;
    cin>>n;
    sum+=n;
    for(int i=1;i<=8;i++)
    {   
        n=n/2;
        sum+=(n*2);
    }
    printf("%.4f",sum);
    cout<<endl;
    printf("%.4f",n);
    return 0;
}

求救!!!


0
已采纳
朱智霖
朱智霖
新手守护
新手守护

暴力

s+=h;
    h/=2.0;
    s+=h*2;
    h/=2.0;
    s+=h*2;
    h/=2.0;
    s+=h*2;
    h/=2.0;
    s+=h*2;
    h/=2.0;
    s+=h*2;
    h/=2.0;
    s+=h*2;
    h/=2.0;
    s+=h*2;
    h/=2.0;
    s=int(s*10000+0.5)/10000.0;
    h=int(h*10000+0.5)/10000.0;
    printf("%.4f",s);
    cout<<endl;
    printf("%.4f",h);

 

0
李素妍
李素妍
新手天翼
新手天翼
double s=0.0,h;
    cin>>h;
    s=s-h;
    int i=1;
    while(i<=8)
    {
        s=s+2*h;
        h=h/2;
        i++;
    }

   printf("%.4lf",int(s*10000+0.5)/10000.0);
   cout<<endl;
   printf("%.4lf",int(h*10000+0.5)/10000.0);
0
我要回答