Item

  小明家很壕,拥有着一栋高楼大厦,高度为h,某天他从楼顶自由落体释放一个弹力球,该球反弹回来的高度比为bounce,小明的母亲坐在高度为window的窗户前化妆(视线刚好平齐),试问,她的视线水平上能看到几次弹力球经过?
注意(违背则返回-1):
  仪表中的浮动参数"h"必须大于 0
  浮动参数"bounce"必须大于 0 且小于 1
  浮动参数"window"必须小于h

题目来源:Codewars(6kyu)

题目原文:A child is playing with a ball on the nth floor of a tall building. The height of this floor, h, is known.
He drops the ball out of the window. The ball bounces (for example), to two-thirds of its height (a bounce of 0.66).
His mother looks out of a window 1.5 meters from the ground.
How many times will the mother see the ball pass in front of her window (including when it’s falling and bouncing?
Three conditions must be met for a valid experiment:
Float parameter “h” in meters must be greater than 0
Float parameter “bounce” must be greater than 0 and less than 1
Float parameter “window” must be less than h.
If all three conditions above are fulfilled, return a positive integer, otherwise return -1.
Note:
The ball can only be seen if the height of the rebounding ball is strictly greater than the window parameter.

Example

例1
如果h = 3m, bounce = 0.66, window = 1.5m;
那么返回 3次

例2:
如果h = 2m, bounce = 1, window = 1.5m;
那么返回 -1

例3:
如果h = 2m, bounce = 0.5, window = 1m;
那么返回 1次

Knowledge

  1. 数据类型:整数型(int)、浮点数
  2. 运算符:比较运算符、赋值运算符、逻辑运算符
  3. 其他:if - else结构、while循环体、逻辑运算符的优先原则

Parsing

  1. 题目过长,其实内容很简单,先做一个示意图(例1):
  2. 设定两个参数:看到的次数、反弹的高度;
  3. 如果结果不返回-1,那么看到的次数初始值为1次,即第一次下落经过母亲的视线;
  4. 如果结果不返回-1,那么反弹的高度必须大于母亲的实现水平高度,且初始值为反弹的高度比例因子乘以小明所处的高度;
  5. 深度朝前推演流程,假设多次反弹,其实每一次反弹,且满足高度时,就经过了2次,那么规律找到了,到这里就可以开始写代码了;
  6. 从官网题目中可以看到例子返回的结果始终是奇数,其实就可以大胆的猜测see_count = 2n-1,n为正整数,沿着这个灵感就可以入手分析了。

Code

def bouncing_ball(h, bounce, window):# 初始化参数:视线经过的次数、反弹高度see_count, see_h = 1, bounce*h# 严格条件执行if h <= window or h <= 0 or bounce >= 1 or bounce <= 0:# 逻辑运算的优先法则:not > and > orsee_count = -1# 利用while循环 检查 反弹高度是否高于窗户高度else:while see_h > window:# 更新反弹高度see_h *= bounce# 每反弹且符合条件一次,则母亲看到两次see_count += 2return see_count

初见Python解题之道(九)相关推荐

  1. 从屌丝到高手,三道Python编程题,九种解题算法,看看你属于哪一类

    大家在平时刷题的过程中,不仅仅要注意理解问题的本质,而且要在解决问题的基础上,优化自己的解题思路和程序. 今天,小编就带领大家来进行三道简单问题的解决,从屌丝解法到进阶解法再到高手解法,一步步的带领大 ...

  2. python基础知识面试题-深入解答关于Python的11道基本面试题

    前言 本文给大家深入的解答了关于Python的11道基本面试题,通过这些面试题大家能对python进一步的了解和学习,下面话不多说,来看看详细的介绍吧. 一.单引号,双引号,三引号的区别 分别阐述3种 ...

  3. 【蓝桥杯Python组】2022年第十三届蓝桥杯省赛B组Python解题思路详解

    第十三届蓝桥杯省赛B组Python解题思路详解 因为今年采用线上的举办方式进行比赛,所以组委会对题目做了一定的调整,将原来的5道填空+5道编程题变成了2道填空+8道编程题,据说是为了防止抄袭.其实题目 ...

  4. python输出200道加减乘除法计算题到Excel

    python输出200道加减乘除法计算题到Excel python输出200道加减乘除法计算题到Excel,表格格式在代码中已添加,打印设置-窄边框,将工资表调整一页打印即可 https://gite ...

  5. [ZZ]知名互联网公司Python的16道经典面试题及答案

    知名互联网公司Python的16道经典面试题及答案 https://mp.weixin.qq.com/s/To0kYQk6ivYL1Lr8aGlEUw 知名互联网公司Python的16道经典面试题及答 ...

  6. Python 初学者进阶的九大技能(附代码)

    授权自AI科技大本营(ID:rgznai100) 本文约4300字,建议阅读9分钟 本文为你介绍Python必须掌握的九大技能. 以下为译文: Python是一种很棒的语言,语法简单,无需在代码中搜索 ...

  7. python有道翻译-Python调用有道词典翻译

    Python调用有道词典翻译 分析 翻译按钮 点击翻译按钮,查看网络请求,如图 共有四个网络请求,通过分析,查看返回的信息,显然第一个是真正的翻译请求,具体信息如下: 如图所示,我们真正关注的是请求参 ...

  8. python实现简单的api接口-简单实现Python调用有道API接口(最新的)

    # ''' # Created on 2018-5-26 # # @author: yaoshuangqi # ''' import urllib.request import urllib.pars ...

  9. python有道翻译接口-【Python】Python利用有道翻译开发API应用示例

    Python源码是关于Python利用有道翻译开发API应用示例.这是一个很有意思又简单的API应用练习题,方法中用到了有道词典开放API应用,合成的类似于命令行词典应用Python小程序.功能简单, ...

最新文章

  1. vivo 互联网业务就近路由技术实战
  2. java-23种设计模式详解(一)
  3. c语言中count的头文件,求助C语言大佬 , 只会写到一个.c文件里 ,不会用.h头文件...
  4. 个人出路......
  5. 【git学习一】git的原理
  6. win docker运行nginx
  7. 2016年第一堂课课后作业1
  8. MachineLearning:UFLDL学习笔记 ---- 主成分分析与白化
  9. Android 网络服务类提供的服务接口
  10. sap未分摊差异怎么处理_聊一聊,临时外包员工差异化薪酬要怎么处理
  11. 北斗导航 | 卫星导航系统中的GNSS信号技术参数/技术参数/规格
  12. FS4054单节锂电池充电管理芯片,IC电路图
  13. 代码质量分析利器之SonarQube【史上最全】
  14. (一)外显子组数据分析之软件安装大全
  15. 乐视电视投屏服务器未响应,乐视超三不能投屏的6种解决方法!
  16. 2019-01-09 工作日志:记录web3连接 respon
  17. 信息系统的无单点故障设计
  18. 我国亟待建立全国危化品安全监管大数据平台
  19. photoshop CC制作gif动图
  20. 抖音运营:抖音直播运营入门

热门文章

  1. yy直播没声音html,也许有很多话还没说-yy语音没声音我家有两个带麦的耳机,一个说 – 手机爱问...
  2. Caffeine 笔记
  3. Web3 到来,既要期待,也要理智
  4. JSP:随机产生1-10的数字
  5. php中 r,PHP中转义字符 (n r)
  6. 【CTF】web01对方不想和你说话,并向你扔了一段代码
  7. 有备无患,夯实安全——校园安全等级保护2.0解决方案
  8. html表格如何做成响应式,响应式web中的表格处理
  9. C# OpenCV EmguCV实现扫描文本图像倾斜矫正 实现详解(附源码)
  10. Centos7 搭建开源个人网盘Nextcloud与常用插件