主要的算法:
累加算法
ladder_save_money 利用math库的fsum()对列表的全部内容求和以下是全部代码:
1 import math 2 3 ''' 4 52周存钱挑战 5 阶梯式存钱法,挑战人必须每周比上周多存一定数额的钱 6 一年(52周)后,不考虑利息,计算存款 7 ''' 8 9 10 def ladder_save_money(money_per_week, increase_per_week, total_week): 11 """ 12 13 :param increase_per_week: 每周存入金额的增幅 14 :param money_per_week: 首周存入的金额 15 :param total_week: 总计存钱周数 16 :return: total_money_list 每周存款情况 17 :print 每周存款数和存款情况 18 """ 19 20 saved_money_list = [] 21 total_money_list = [] 22 for i in range(total_week): 23 saved_money_list.append(money_per_week) 24 # math库内置函数,对列表内所有所有数字求和 25 # 这里不用简单的 saving = money_per_week + total_money_list[i - 1]的原因是第一周需要特殊处理,代码风格不好 26 saving = math.fsum(saved_money_list) 27 # 使用这个列表的原因是要每周输出,主函数最后也要输出一下最终存款 28 total_money_list.append(saving) 29 30 # 输出每周存钱情况 31 print("第{}周,存入{}元,已累计存款{}元".format(i + 1, money_per_week, saving)) 32 # 每周固定涨幅increase_per_week元 33 money_per_week += increase_per_week 34 return total_money_list 35 36 37 def main(): 38 """ 39 主函数 40 :return:null 41 """ 42 43 # 首周存入的金额 44 money_per_week = int(input("请输入首周存入的金额:")) 45 # 每周增幅一定金额 46 increase_per_week = int(input("请输入每周存入金额的增幅:")) 47 # 存钱周期 48 total_week = int(input("请输入总计存钱时长(周数):")) 49 50 total_money_list = ladder_save_money(money_per_week, increase_per_week, total_week) 51 length = len(total_money_list) 52 # format标准化输出 53 print("{}周后功能存入{}元".format(total_week, total_money_list[length - 1])) 54 55 56 if __name__ == '__main__': 57 main()
来源:https://www.cnblogs.com/misaki-workshop/p/12590230.html