主要的演算法: 累加演算法 ladder_save_money 利用math庫的fsum()對列表的全部內容求和以下是全部代碼: 1 import math 2 3 ''' 4 52周存錢挑戰 5 階梯式存錢法,挑戰人必須每周比上周多存一定數額的錢 6 一年(52周)後,不考慮利息,計算存款 7 ''' ...
主要的演算法:
累加演算法
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()