当前位置: 首页 > news >正文

Python算法100例-1.7 最佳存款方案

完整源代码项目地址,关注博主私信’源代码’后可获取

  • 1.问题描述
  • 2.问题分析
  • 3.算法设计
  • 4.完整的程序

1.问题描述

假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后5年中的每年年底取出1000元,到第5年时刚好取完,请算出他存钱时应存入多少。

2.问题分析

根据题意,可以从第5年向前推算。已知“在今后5年中的每年年底取出1000元,这样到第5年的时候刚好可以取完”,因此,第5年年底会取出1000元,则可以计算出第5年年初在银行中所存的钱数为:

第5年年初存款数=1000/(1+12×0.0063)

据此推算出第4年、第3年直至第1年年初的银行存款数如下:

第4年年初存款数=(第5年年初存款数+1000)/(1+12×0.0063)

第3年年初存款数=(第4年年初存款数+1000)/(1+12×0.0063)

第2年年初存款数=(第3年年初存款数+1000)/(1+12×0.0063)

第1年年初存款数=(第2年年初存款数+1000)/(1+12×0.0063)

将推导过程用表格表示出来,如图所示。

在这里插入图片描述

3.算法设计

根据上述分析,从第5年年初开始向前递推就可求出这个人应该在银行中存钱的钱数。因此可以使用for循环语句,循环4次,每次循环都在上一次的基础上加上1000,再除以(1+12×0.0063)。

4.完整的程序

根据上面的分析,编写程序如下:

%%time
# 最佳存款方案if __name__=="__main__":i = 0money = 0.0while i < 5:money = (money + 1000)/(1 + 0.0063 * 12)i += 1print("应该存入钱数为:%0.2f" %money)                           # 结果保留两位小数
应该存入钱数为:4039.44
CPU times: user 125 µs, sys: 0 ns, total: 125 µs
Wall time: 118 µs
http://www.lryc.cn/news/301717.html

相关文章:

  • ADO世界之FIRST
  • 【COMP337 LEC 5-6】
  • 力扣72. 编辑距离(动态规划)
  • linux tree命令找不到:如何使用Linux Tree命令查看文件系统结构
  • OJ_最大逆序差
  • MyBatis-Plus 实体类里写正则让字段phone限制为手机格式
  • K8S之运用污点、容忍度设置Pod的调度约束
  • Sora爆火,普通人的10个赚钱机会
  • 【C++】C++入门—初识构造函数 , 析构函数,拷贝构造函数,赋值运算符重载
  • 沁恒CH32V30X学习笔记04--外部中断
  • 基础IO[三]
  • Leetcode 392 判断子序列
  • 基于微信小程序的校园跑腿系统的研究与实现,附源码
  • VTK Python PyQt 监听键盘 控制 Actor 移动 变色
  • 力扣 第 124 场双周赛 解题报告 | 珂学家 | 非常规区间合并
  • 2024年华为OD机试真题-生成哈夫曼树-Java-OD统一考试(C卷)
  • 【实战】二、Jest难点进阶(二) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(六)
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • HAL/LL/STD STM32 U8g2库 +I2C SSD1306/sh1106 WouoUI磁贴案例
  • 手机如何改自己的ip地址
  • ajax函数库axios基本使用
  • 【nginx实践连载-4】彻底卸载Nginx(Ubuntu)
  • 究极小白如何自己搭建一个自动发卡网站-独角数卡
  • Java_方法(重载方法签名等详解)
  • VQ35 评论替换和去除(char_length()和replace函数的使用)
  • 【MySQL】学习多表查询和笛卡尔积
  • RabbitMQ实现延迟消息的方式-死信队列、延迟队列和惰性队列
  • 【运维测试】测试理论+工具总结笔记第1篇:测试理论的主要内容(已分享,附代码)
  • 【C语言】实现队列
  • 【友塔笔试面试复盘】八边形取反问题