完整源代码项目地址,关注博主私信’源代码’后可获取
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 = 0 money = 0.0 while i < 5 : money = ( money + 1000 ) / ( 1 + 0.0063 * 12 ) i += 1 print ( "应该存入钱数为:%0.2f" % money)
应该存入钱数为:4039.44
CPU times: user 125 µs, sys: 0 ns, total: 125 µs
Wall time: 118 µs