情况如下,一个银行整存整取存款不同期限的年率为:1年1.75%;2年2.25%;3年2.75%;5年2.75%;8年2.75%;小强手上有50000元,如何存钱,使得这笔钱存入银行20年后获得的利息最多。假定银行对超出存款期限的那部分时间不付利息。
想要获得最多的利息,就需要在一笔钱到期后立即取出,连本带息一起存入获取下一个获取收益。那是3年3年的存呢?还是先存5年5年的存?或者其他组合?还是用程序跑一遍,计算一下各种情况的收益,那一种最高。
下面直接上代码:
########################
if __name__=="__main__":
#在20年中,1年期限的存了x1次,2年期限的存了x2次,以此类推
max = 0.0
for x8 in range(0,3):
t5 = (20-8*x8)//5 #存款5年的最大次数
for x5 in range(0, t5+1):
t3 = (20-8*x8-5*x5)//3 #存款3年的最大次数
for x3 in range(0, t3+1):
t2 = (20-8*x8-5*x5-3*x3)//2
for x2 in range(0, t2+1):
x1 = 20-8*x8-5*x5-3*x3-2*x2 # 存款期限限定条件
# 判断条件
result = 50000* ((1+0.0175)**x1) *((1+2*0.0225)**x2)* \
((1+3*0.0275)**x3) *((1+5*0.0275)**x5) * ((1+8*0.0275)**x8)
# y1、y2、y3、y5、y8用于记录获利最多的存款方式
if result > max:
max = result
y1 = x1
y2 = x2
y3 = x3
y5 = x5
y8 = x8
# 输出结果
print("获得利息最多的存款方式为:");
print("8年期限的存了%d次" %y8);
print("5年期限的存了%d次" %y5);
print("3年期限的存了%d次" %y3);
print("2年期限的存了%d次" %y2);
print("1年期限的存了%d次" %y1);
print("存款人最终的获得的本利合计:%0.2f" %result);
########################
执行结果如下:
获得利息最多的存款方式为:
8年期限的存了0次
5年期限的存了1次
3年期限的存了5次
2年期限的存了0次
1年期限的存了0次
存款人最终的获得的本利合计:81969.44
结果很让人意外,和直觉感觉的不一样。
________________END______________
网友评论