IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 顾同学的Python学习日记(九) -> 正文阅读

[Python知识库]顾同学的Python学习日记(九)

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 > or
        see_count = -1
    # 利用while循环 检查 反弹高度是否高于窗户高度
    else:
        while see_h > window:
        	# 更新反弹高度
            see_h *= bounce
            # 每反弹且符合条件一次,则母亲看到两次
            see_count += 2
    return see_count
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 16:35:50  更:2021-07-31 16:37:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 17:36:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码