OpenJudge百练第4022号习题:买房子

  • 题目描述
  • 解题思路
  • 参考答案
  • 测试用例
  • 小结

题目描述

来源
OpenJudge网站 – 百练习题集-第4022号习题

要求
总时间限制: 1000ms 内存限制: 65536kB

描述
某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子?(第一年年薪N万,房价200万)

输入
一行,包含两个正整数N(10 <= N <= 50), K(1 <= K <= 20),中间用单个空格隔开。
输出
如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible。
样例输入
50 10
样例输出
8

解题思路

  1. 第 i 年,程序员不吃不喝的工资收入是N * i,房子金额变为200 * (1 + K / 100) i-1,i=1, 2, …, 20。
  2. 题目要求的是满足以下条件的 i:N * i >= 200 * (1 + K / 100) i-1的 i , i <= 20。

参考答案

N, K = [int(s) for s in input().split()]for i in range(1, 21):if N * i >= 200 * (1 + K / 100) ** (i - 1):  # **是幂次运算print(i)break  #直接跳到for语句之后,不会执行下面的else分支
else:print("Impossible")  #循环遍历结束,即i取20并执行循环体后,执行流程走到else分支

测试用例

  1. 题目描述给出的测试用例覆盖的是常规情形。

  2. 输出Impossible的情形。
    样例输入
    50 20
    样例输出
    Impossible

  3. N=200,第一年就可以买房子。尽管题目说N<=50, 但我们可以拿200来测试下,毕竟容易推算出期望输出。
    样例输入
    200 10
    样例输出
    1

  4. N=10, K=1,都取的是下界。屌丝买不起房啊…
    样例输入
    10 1
    样例输出
    Impossible

小结

  1. 本题示范了for语句的else分支用法。
  2. 有了else分支,我们无需在循环之后通过判别循环控制变量 i 的值来决定输出。

Python入门习题(69)——OpenJudge百练习题:买房子相关推荐

  1. Python入门习题大全——数字 8

    Python入门习题大全--索引 编写4个表达式,它们分别使用加法.减法.乘法和除法运算,但结果都是数字8.为使用print语句来显示结果,务必将这些表达式用括号括起来,也就是说,你应该编写4行类似于 ...

  2. Python入门习题大全——词汇表2

    Python入门习题大全--索引 既然你知道了如何遍历字典,现在请整理你为完成上一个例题而编写的代码,将其中的一系列 print 语句替换为一个遍历字典中的键和值的循环.确定该循环正确无误后,再在词汇 ...

  3. Python入门习题大全——词汇表

    Python入门习题大全--索引 Python 字典可用于模拟现实生活中的字典,但为避免混淆,我们将后者称为词汇表. 想出你在前面学过的5个编程词汇,将它们用作词汇表中的键,并将它们的含义作为值存储在 ...

  4. Python入门习题大全——大号T恤

    Python入门习题大全--索引 修改函数上一个"T恤"例题中的make_shirt(),使其在默认情况下制作一件印有字样"I lovePython"的大号T恤 ...

  5. Python入门习题大全——T恤

    Python入门习题大全--索引 编写一个名为make_shirt()的函数, 它接受一一个尺码以及要印到T恤上的字样.这个函数应打印一个句子,概要地说明T恤的尺码和字样. 使用位置实参调用这个函数来 ...

  6. Python入门习题大全——猫和狗

    Python入门习题大全--索引 创建两个文件cats.txt 和dogs.txt,在第一个文件中至少存储三只猫的名字,在第二个文件中至少存储三条狗的名字.编写一个程序,尝试读取这些文件,并将其内容打 ...

  7. Python入门习题大全——人生的不同阶段

    Python入门习题大全--索引 设置变量 age 的值,再编写一个 if-else-else 结构,根据 age 的值判断处于人生的哪个阶段. 如果一个人的年龄小于 2 岁,就打印一条消息,指出他是 ...

  8. Python入门习题大全——检查用户名

    Python入门习题大全--索引 按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式. 创建一个至少包含5个用户名的列表,并将其命名为current_users. 再创建一个包含5 ...

  9. Python入门习题大全——喜欢的水果

    Python入门习题大全--索引 创建一个列表,其中包含你喜欢的水果,再编写一系列独立的 if 语句,检查列表中是否包含特定的水果. 将该列表命名为 favorite_fruits,并在其中包含三种水 ...

  10. Python入门习题大全—— 3 的倍数

    Python入门习题大全--索引 创建一个列表,其中包含 3 ~ 30 内能被 3 整除的数字:再使用一个 for 循环将这个列表中的数字都打印出来. # 3 的倍数 san = [value for ...

最新文章

  1. Mac下导出chrome插件
  2. 查看运行状态_查看 Linux 系统服务的 5 大方法
  3. mysql12----explain
  4. IbatisNet开发使用小结
  5. bat遍历当前目录下的文件,批量重命名
  6. python PyQt5 QMainWindow类(Qt主窗口框架,主窗口提供了用于构建应用程序用户界面的框架)
  7. 《C++ Primer》13.1.2节练习
  8. 点亮两个发光管用c语言编辑,第二个试验:用单片机点亮一个闪烁的发光管-----51单片机汇编语言试验教程 - CSDN博客...
  9. 刘强东“撒币”100亿;支付宝违规被罚18万;摩拜产品不合格 | 一周业界事
  10. 子类重写方法aop切不到_Spring-aop 全面解析(从应用到原理)
  11. 严蔚敏数据结构课后参考答案
  12. java怎么实现直方图均衡化_直方图均衡化原理与实现
  13. 练习:使用Python爬取COVID-19疫情国内当日数据
  14. 服务器磁盘IO是什么意思?SATA和固态硬盘的性能差异
  15. 我同学——应聘阿里巴巴之经过
  16. java基于ssm+vue+elementui楼盘房屋销售系统 前后端分离
  17. APDL电磁仿真学习中可能会遇到的问题1
  18. 勿忘2022,迎接2023
  19. 计算机网络·计算子网地址,子网掩码,广播地址,根据子网掩码求网络地址详解
  20. Windows XP快捷键大全

热门文章

  1. 关于java取反运算
  2. Powershell快速生成指定尺寸的Kindle屏保图
  3. 在Overleaf中使用algorithm2e时,如何自定义Input和Output的名称
  4. redis db0-db15
  5. 对于减少固态过量写问题的缓解
  6. swif访问控制修饰符
  7. 瑞芯微RK3399设备树传递分析
  8. web网页设计期末课程大作业 我的美丽家乡盐城 HTML+CSS+JavaScript
  9. 如何设计双Y轴的仪表板图表
  10. excel 无法使用 ctrl + enter 填充空值