问题标题: 1010

0
0
已解决
张鑫宇
张鑫宇
中级守护
中级守护
#include<bits/stdc++.h>
using namespace std;
int main()
{
    double a,b,c,d,e,f,g,i,h;
    cin>>h;
    a=h/2;
    b=a/2;
    c=b/2;
    d=c/2;
    e=d/2;
    f=e/2;
    g=f/2;
    i=g/2;
    printf("%.4f\n",h+2*a+2*b+2*c+2*d+2*e+2*f+g+2*i);
    printf("%.4f",i);
    return 0; 
}

 


0
已采纳
贺晓雨
贺晓雨
资深守护
资深守护
for (i=2;i<=8;i++)
{
a=a/2.0;
d=a+d*2;
}


a,b均为double型,a为累加,计算每次落地后反跳回原来高度的一半,也就是到球第8次落地时,一共经过的米数

b为第8次弹跳的高度。

 

0
杨陈卓
杨陈卓
新手天翼
新手天翼

    while (i<=7)

    {

        h/=2;

        s+=h*2;

        ++i;

    }

 

0
杨子逸
杨子逸
新手天翼
新手天翼
double d=0,H;
    int h;
    cin>>h;
    d=h;
    H=h;
    for(int i=2;i<=8;i++){
        H=H/2;
        d+=2*H;
    }
    printf输出("%.4f\n",(int)(d*10000+0.5)/10000.0);
    printf输出("%.4f",(int)(H/2*10000+0.5)/10000.0);
0
祝明朗
祝明朗
初级光能
初级光能
    double d=0,H;
    定义 h;
    输入>>h;
    d=h;
    H=h;
    循环(int i=2;i<=8;i++){
        H=H/2;
        d+=2*H;
    }
    printf("%.4f\n",(int)(d*10000+0.5)/10000.0);
    printf("%.4f\n",(int)(H/2*10000+0.5)/10000.0);

 

0
王子轩
王子轩
新手光能
新手光能
for(int i=1;i<=8;i++)
    {
        e+=t;
        t=(float)t/2;
        e+=t*2;
//        printf("e=%.4f\n",e);
 //       printf("t=%.4f\n",t);
    }
    e=(int)(e*10000+0.5)/10000.0;
    t=(int)(t*10000+0.5)/10000.0;
0
0
王子翔
王子翔
新手光能
新手光能
double h,sum=0;
    cin>>h;
    for(int i=1;i<=8;i++)
    {
        sum+=h;
        h=h/2;
        sum+=h;
    }   
    sum-=h;
    printf("%.4f\n%.4f",int(sum*10000+0.5)/10000.0,int(h*10000+0.5)/10000.0);
    return 0;
头文件<cstdio>

 

0
李翊冉
李翊冉
初级守护
初级守护

可以用循环

主程序:

    double x=0;
    double h;
    cin>>h;
    int i;
    x+=h;
    for(i=1;i<=8-1;i++){
        h/=2;
        x+=h*2;
    }
    h/=2;

然后用四舍五入的方法,不要直接取四位小数

printf("%.4f“,变量名)

这是普通的取整。但这不是最终的答案。它可以满足四舍六入,碰到5就是随机的了。四舍五入的方法为:

printf(”%.4f",(int)(变量名*10000+0.5)/10000.0)
0
0
0
谢其桦
谢其桦
资深守护
资深守护

这道题是四舍五入的方法。

0
夏卓然
夏卓然
初级守护
初级守护

建议用for循环

for(int i=1;i<=h;i++)
    {
        double m=h/2;
        sum+=2*m;
        if(i==8)
        {
            h+=s;
            break;
        }
        else continue;
    }

0
刘凯南
刘凯南
高级守护
高级守护

printf("%.4f",(int)(t*10000+0.5)/10000.0);四舍五入

0
樊澄宇
樊澄宇
新手光能
新手光能
printf("%.4f\n",h+2*a+2*b+2*c+2*d+2*e+2*f+g+2*i);

改成

printf("%.4f\n",(int)(10000*(h+2*a+2*b+2*c+2*d+2*e+2*f+2*g+2*i)+0.5)/10000.0);
printf("%.4f",i);

改成

printf("%.4f",(int)(10000*i+0.5)/10000.0);
0
0
臧启亚
臧启亚
初级光能
初级光能

核心代码

for(int i=1;i<=8;i++){
        sum=sum+t;
        t=t/2;
        if (i<8) sum=sum+t;
    }
    printf("%.4f",sum);
        cout<<endl;
    printf("%.4f",t);

 

0
杨陈卓
杨陈卓
新手天翼
新手天翼
    while (i<=7)
    {
        h/=2;
        s+=h*2;
        ++i;
    }

这是核心代码

0
贺晓雨
贺晓雨
资深守护
资深守护

不用这样,可以用for循环

-1
周天睿
周天睿
初级光能
初级光能

核心代码

float h,s;
    cin>>h;
    s=-h;
    for(int i=1;i<=8;i++)
    {
        s+=2*h;
        h/=2;
    }

然后printf四舍五入分为两行输出s和h。

我要回答