题目4:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
题目4:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
还是和前面的题一样,这种题最简单的思路就是递归。第10次掉下所经过的总距离实际上就是前9次掉下经过的总距离再加上弹起来一次再加掉下去一次。
简单思考就可以想到,第n次掉下去的高度总是等于n-1次弹起来的高度,所以我们在程序中只需要计算出n-1次掉落后弹起来的高度,结果就可以出来了。弹起来的高度怎么算呢?我们先来推一下:
如题我们知道第一次掉下的高度为10,弹起来的是5,也就是(10/2);第二次掉下去的是5,弹起来的是2.5(也就是10/2²),第三次掉下去的是2.5,弹起来的是1.25(也就是10/2³)…那么,第n次弹起来的高度就是10/2ⁿ。
我们再回到题目,假入说设我们要求的次数为n,也就是我们要计算第n-1次弹起来的高度,才能得出第n次掉下去的高度。另外,题目中还要求算出第10次掉下去再弹起来多高,这个很简单,就是n-1次弹起来的高度÷2即可。
这一道题我们用 Python 的 class 类来解!因为跳动的小球可以看做一个类,它具有跳动次数的属性,以及算出总跳动距离、单次跳动距离的方法。上代码:
class ball_pop(object):def __init__(self,times):self.times = timesself.init_height = 100def __get_distance(self,n):if n == 1:return self.init_heightreturn self.__get_distance(n-1)+self.init_height/2**(n-1)*2# def get_distance(self): 从外部无参数计算总距离的备用方法# return self.__get_distance(self.times)def __get_ntimes_popup(self):return self.init_height/2**(self.times-1)/2def __call__(self):print(f"小球第{self.times}次落下后经过的总距离为{self.__get_distance(self.times)}米, 第{self.times}落下后再弹起来的高度为{self.__get_ntimes_popup()}米")ball = ball_pop(10)
ball()
题目4:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?相关推荐
- /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */
题目: /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第十次落地时,共经过多少米?第十次反弹多高? */ 我是用java做的 public ...
- 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 * 第10次落地时,共经过多少米?第10次反弹多高?
package Day03;/*** 第三题:* 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在* 第10次落地时,共经过多少米?第10次反弹多高?* <p> ...
- 萌新的Python练习菜鸟100例(十八)一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
题目: 一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 分析: · 用户输入层数和数字: · 使用for i in range ...
- Java题-一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 第一种: public class Dome10 {public st ...
- 4.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 解题思路:已知小球会反弹,反弹回原高度的一半,所以的在第一次落下后会反弹50米 ...
- 如何用python实现题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
python实现 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 题目分析 第一次下落的距离是100米,反跳回原高度的 ...
- 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 算法分析: 1)第一次落地之后开始进行弹起落下的来回循环 即 for( ...
- C语言编程>第二周 ⑥ 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
例题:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 代码如下: /*程序分析:利用for循环语句求解*/ #include& ...
- Python3 (基础练习) 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 问题分析: 一开始的100米先抛开.10次落地,但是在最后一次落地后就停止了, ...
最新文章
- centoros 环境安装
- Notification with Service Workers push events
- mysql与dns_借助mysql和DNS view实现智能DNS(centos6.3 x64环境)
- MySQL索引知识点
- 【乐理知识】第二章 音符 休止符
- 服务器保持与Mysql的连接
- np.random.seed()
- atitit.ajax上传文件的实现原理 与设计
- TCP/IP协议号大全
- mtex极图_一种多相金属材料相成分识别的方法与流程
- leetcode 买卖股票的最佳时机含手续费(Java)
- VR全景有什么应用,和传统摄影的区别,发展前景如何?
- 苍穹角色对接流程开发
- python--1、入门
- ubuntu企业微信和微信无法发送和显示图片和截图问题
- C语言函数:toupper
- 仿百度,谷歌输入框自动提示功能
- 在C++中响铃的两种方法
- 计算机分子模拟聚乙烯,用“分子模拟”软件构建聚乙烯分子、全同立构聚丙烯分子,并计算它们末端的直线距离-高分子物理-实验1-01...
- 如何获得海量的RoboCode代码
热门文章
- 超超经典语录、看的我心拔凉拔凉的、我真的hold不住!!
- TTTTTTTTTTT 400D Dima and Bacteria 细菌 最短路
- Kibana--KQL和Lucene的区别
- 2020年中国全国5级行政区划(省、市、县、镇、村)
- 【MATLAB】如何测试电脑运行matlab的性能?
- c51中断优先级c语言,基于proteus的51单片机开发实例(14)中断嵌套和中断优先级...
- yum https ssl双向认证 证书申请
- 带变压器和不带变压器的RJ45
- 安鸾渗透实战平台综合渗透——SQL注入进阶渗透流程
- 男人,你连剃须刀都不知道怎么选,活该你单身!