反弹-C语言

【问题描述】
已知一球从高空落下时,每次落地后反弹至原高度的四分之一再落下。编写一程序,从键盘输入整数n和m,求该球从n米的高空落下后,第m次落地时共经过的路程以及第m次落地后反弹的高度,并输出结果。
【输入形式】
从键盘输入整数n和m,以空格隔开。
【输出形式】
输出两行:
第一行输出总路程,保留小数点后两位;
第二行输出第m次落地后反弹的高度,保留小数点后两位。
【输入样例】
40 3
【输出样例】
65.00
0.63
【评分标准】
结果完全正确得20分,每个测试点4分,提交程序文件high.c。

#include <stdio.h>

int main()
{
	int m;
	double s,n;
	scanf("%lf%d",&n,&m);
	while(m--)
	{
		s+=n;
		n*=0.25;
		s+=n;//加上反弹后的高度 
	}
	s-=n;//落地时并没有反弹,所我们多加了一次,所以减去 
	printf("%.2lf\n",s);
	printf("%.2lf\n",n);
	return 0;
 } 

 

好的,以下是用中文回复: 题目描述: 已知一球高空落下每次落地反弹至原高度四分之一落下编写程序从键盘输入整数n和m,求该球从n米的高空落下后,第m次落地经过的全部路程以及第m次落地反弹高度,并输出结果。 解题思路: 根据题目描述,球每次落地反弹至原高度四分之一落下,因此球在第一次落地经过的路程为n,第二次落地经过的路程为n + n/2 + n/4,第三次落地经过的路程为n + n/2 + n/4 + n/8 + n/16,以此类推。 球第m次落地反弹高度为n/4^(m-1)。 因此,我们可以用循环来计算球第m次落地经过的全部路程和第m次落地反弹高度。 代码实现: 下面是Python代码实现: n = int(input("请输入球从高空落下高度(单位:米):")) m = int(input("请输入球第几次落地后的路程和反弹高度:")) s = n # 第一次落地的路程 h = n/4 # 第一次落地反弹高度 for i in range(2, m+1): s += n/(2**(i-1)) # 第i次落地的路程 h = n/(4**(i-1)) # 第i次落地反弹高度 print("第", m, "次落地经过的全部路程为:", s) print("第", m, "次落地反弹高度为:", h) 输出结果: 请输入球从高空落下高度(单位:米):100 请输入球第几次落地后的路程和反弹高度:3 第 3 次落地经过的全部路程为: 175. 第 3 次落地反弹高度为: 6.25 希望能帮到你!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值