admin管理员组

文章数量:1794759

100个python算法超详细讲解:最佳存款方案

100个python算法超详细讲解:最佳存款方案

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) 将推导过程用表格表示出来,如表1.3所示。

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

#!/usr/bin/python3 # -*- coding: utf-8 -*- # @author : liuhefei # @desc: 最佳存款方案 if __name__=="__main__": i = 0 money = 0.0 while i < 5: money = (money + 1000)/(1 + 0.0063 * 12) i += 1 print("应该存入钱数为:%0.2f" %money) # 结果保留两位小数

 5.运行结果 在PyCharm下运行程序,结果如图1.13所示。由于在程序中控制了 输出结果的小数位数为两位,因此最后的计算结果为4039.44。

 

本文标签: 算法存款方案详细Python