梦幻精灵_cq 2023-09-20 06:34 采纳率: 100%
浏览 8
已结题

存款利率经不得验算,请大能解惑

  • 题目描述截屏图片

    img

  • '递归计算代码及运行效果截图截屏图片'

    img

#!/sur/bin/nve python
# coding: utf-8


def solution(n, k):
    print(f"{n:.2f}")
    
    if k:
        
        for i in range(12):
            n = n/(1+0.63/100)

        return solution(n + 1000, k-1)
    else:
        return n
    
    
if __name__ == '__main__':
    print(f"\n需存入金额:¥{solution(0, 5):.2f}元")

  • `验算代码及运行效果截图'

    img


    很显然,前面的递归计算出来的结果是经不起验算的,“正确结果”应该是4011。我反复推敲,觉得问题是出在“验算”和“计算”的“1”不同,但却不晓得郎个去解决。😓寻求您帮助🤝

a = 4011

print(f"\n最初存入:{a:.2f}\n") 

for i in range(5):

    for j in range(12):
        a = a*(1+0.63/100)

    print(f"第{i+1:0>2}年底余额:{a:.2f}")
    a -= 1000

print(f"\n最后余额:{a:.2f}")


展开全部

  • 写回答

4条回答 默认 最新

  • Marst·Zhang 2023-10-24 01:13
    关注

    这个数学题逆推一下就实现了, 代码如下

    def solution(n, k, interest_val):
        if n:
            print(f"年利率为{interest_val} 金额: 第{6 - k}年, 年初{n:.4f} 年末{(n * (1 + interest_val)):.4f}")
        if k >= 5:
            return n
        else:
            n = (n + 1000) / (1 + interest_val)
            return solution(n, k + 1, interest_val)
    
    
    if __name__ == '__main__':
        interest_rate = 0.0063 * 12
        save_money = solution(0, 0, interest_rate)
        print(f"\n需存入金额:¥{save_money}")
    

    """
    年利率为0.0756 金额: 第5年, 年初929.7136 年末1000.0000
    年利率为0.0756 金额: 第4年, 年初1794.0811 年末1929.7136
    年利率为0.0756 金额: 第3年, 年初2597.6953 年末2794.0811
    年利率为0.0756 金额: 第2年, 年初3344.8265 年末3597.6953
    年利率为0.0756 金额: 第1年, 年初4039.4445 年末4344.8265

    需存入金额:¥4039.444465119001
    """

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 10月31日
  • 已采纳回答 10月24日
  • 修改了问题 9月20日
  • 创建了问题 9月20日