
主要的算法:
累加算法
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