点赞(0)
 

0.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 6 条评论

城墙拐角 5年前 回复TA
@月下萤火 “第N次落地时反弹多高”是第N次落地以后的距离,“共经过多少米”是第N次落地之前的距离
周周小鱼 5年前 回复TA
为什么我算出来不一样呢
#include<stdio.h>
int main()
{
	int n,i;
	double h,c=0.0,sum=0;
	scanf("%lf %d",&h,&n);
	for(i=0;i<n;i++)
	{
		c=h;
		h=h/2;
		sum=c/2+c+sum;
	}
	printf("%.2lf %.2lf",h,sum);
	return 0;
 }
月下萤火 5年前 回复TA
我做法和你一样,但我不明白为什么后面的路程要减去最后反弹的高度
健身的熊 5年前 回复TA
#include<stdio.h>

int main()
{
	int i,M,N;     //M是初始高度,N是落地次数
	double j,k,sum=0;   //j用来存储落地N次后的高度,k表示落地1次的总行程距离

	scanf("%d %d",&M,&N);
	
	j = M;   
	k = M;
	for(i = 1;i <= N; i++)
	{
		j = j * 1.0 / 2; 
		sum = sum + k;
		k = M ;  // 落地-弹起-落地,恰好是落地N次后的一个M高度
		M = M * 1.0 / 2;
	}
	printf("%.2lf ", j);
	printf("%.2lf", sum);
	return 0;
}
神鬼一刀流 5年前 回复TA
@神鬼一刀流 多了个    printf("%f\n",m);
神鬼一刀流 5年前 回复TA
#include<stdio.h>
int main()
{
    int n;           //落地次数
    float m,path_length=0.0;//m为初始高度,path_length为第n次落地时经过路径的长度,此时m值为反弹高度

    scanf("%f %d",&m,&n);
    path_length = m;

	for(int i=1; i<n; i++)
    {
        path_length = path_length + m;
        m = m/2;
    }
    m = m/2;

    printf("%f\n",m);
    printf("%.2f %.2f\n",m,path_length);

    return 0;
}