题目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次反弹多高?相关推荐

  1. /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第十次落地时,共经过多少米?第十次反弹多高? */

    题目: /* * 编程第二题(20分): 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下.求它在第十次落地时,共经过多少米?第十次反弹多高? */ 我是用java做的 public ...

  2. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 * 第10次落地时,共经过多少米?第10次反弹多高?

    package Day03;/*** 第三题:* 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在* 第10次落地时,共经过多少米?第10次反弹多高?* <p> ...

  3. 萌新的Python练习菜鸟100例(十八)一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    题目: 一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 分析: · 用户输入层数和数字: · 使用for i in range ...

  4. Java题-一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

    题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 第一种: public class Dome10 {public st ...

  5. 4.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 解题思路:已知小球会反弹,反弹回原高度的一半,所以的在第一次落下后会反弹50米 ...

  6. 如何用python实现题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    python实现 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 题目分析 第一次下落的距离是100米,反跳回原高度的 ...

  7. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?

    题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? 算法分析: 1)第一次落地之后开始进行弹起落下的来回循环 即 for( ...

  8. C语言编程>第二周 ⑥ 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    例题:一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 代码如下: /*程序分析:利用for循环语句求解*/ #include& ...

  9. Python3 (基础练习) 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

    一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 问题分析: 一开始的100米先抛开.10次落地,但是在最后一次落地后就停止了, ...

最新文章

  1. centoros 环境安装
  2. Notification with Service Workers push events
  3. mysql与dns_借助mysql和DNS view实现智能DNS(centos6.3 x64环境)
  4. MySQL索引知识点
  5. 【乐理知识】第二章 音符 休止符
  6. 服务器保持与Mysql的连接
  7. np.random.seed()
  8. atitit.ajax上传文件的实现原理 与设计
  9. TCP/IP协议号大全
  10. mtex极图_一种多相金属材料相成分识别的方法与流程
  11. leetcode 买卖股票的最佳时机含手续费(Java)
  12. VR全景有什么应用,和传统摄影的区别,发展前景如何?
  13. 苍穹角色对接流程开发
  14. python--1、入门
  15. ubuntu企业微信和微信无法发送和显示图片和截图问题
  16. C语言函数:toupper
  17. 仿百度,谷歌输入框自动提示功能
  18. 在C++中响铃的两种方法
  19. 计算机分子模拟聚乙烯,用“分子模拟”软件构建聚乙烯分子、全同立构聚丙烯分子,并计算它们末端的直线距离-高分子物理-实验1-01...
  20. 如何获得海量的RoboCode代码

热门文章

  1. 超超经典语录、看的我心拔凉拔凉的、我真的hold不住!!
  2. TTTTTTTTTTT 400D Dima and Bacteria 细菌 最短路
  3. Kibana--KQL和Lucene的区别
  4. 2020年中国全国5级行政区划(省、市、县、镇、村)
  5. 【MATLAB】如何测试电脑运行matlab的性能?
  6. c51中断优先级c语言,基于proteus的51单片机开发实例(14)中断嵌套和中断优先级...
  7. yum https ssl双向认证 证书申请
  8. 带变压器和不带变压器的RJ45
  9. 安鸾渗透实战平台综合渗透——SQL注入进阶渗透流程
  10. 男人,你连剃须刀都不知道怎么选,活该你单身!