第 56 节 用编程解决实际问题(第1页)

在现实编程中,如果我们遇到了已经学过的算法不适合解决的问题,该怎么办?

其实很简单,就是把控制流程和数据结构想清楚,然后用代码实现就好了!

在本章内我们就来看两个例子。

鉴于前面已经讲过该怎么阅读代码了,所以我们在此给出问题和基本解题思路,然后就直接提供代码。具体的求解过程和细节,需要大家自己通过阅读代码来了解。

题目内容

如果你有 1000 万人民币,全部放在银行里做保障性理财,每年的收益率与通货膨胀持平(都按 5% 计算)。

这些钱及其理财收益仅仅用于你个人的日常生活消费——不买房、不买车、不置产,不用于大病治疗,也不包括结婚生子的费用,只用来过日子。

日常消费额按照当前消费水平下的每月 2 万元计算。以后每年保持生活质量不变,也就是保持历年购买力不变(月消费额随与通胀等比增加)。

若当年收益高于消费,则余额打入本金继续理财;若当年收益不够支付当年消费,则从本金中支付不足部分以保证消费水平不变。

按照如此原则理财、消费,那么 1000 万够支持多少年呢?

解题思路

笼统想想,通胀和理财收益幅度一样,那么每个月的消费其实都是在消耗本金了,一个月 2 万花费,一年就是 24 万,能花多少年就直接 1000/24 = 41.57,不到 42 年就花完了呀。

这样好像没问题,可是仔细想想:第一年的收益是 50 万,消费才之后 24 万,明明是本金越来越多嘛,第二年虽然消费涨了,可以本金更多了,收益剪掉消费的余额却更多了呀,怎么不是本金越来越多,却是被消耗掉呢?

不如我们来写个程序,计算一下以上原则情况下,每一年的总资产(property, 本金 + 收益)、本金(principal)和消费(cost)的数字吧。这样不是看得清楚啦?

另外,还要算一算当年消费与资产的比例,以及能够留存到下一年的资产。

编码实现

代码如下:

def updatePrincipal(currentPrincipal, currentCostYearly, interestsRate):
(本章节未完结,点击下一页翻页继续阅读)