日更成长营自学编程Python

自学Python:如何存款收益最高

2021-11-25  本文已影响0人  小强聊成长

情况如下,一个银行整存整取存款不同期限的年率为: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______________

上一篇 下一篇

猜你喜欢

热点阅读