計算指定範圍內能整除的個數及總和
阿新 • • 發佈:2018-07-28
opened gen dep cee exc pla play 個數 hid
計算指定範圍內能被3 和 7 整除的個數及總和
1、遞歸實現:
1 def count_and_sum(start,end,a=0,b=0): 2 if start == end: 3 return a,b 4 5 if start%3 == 0 and start%7 == 0: 6 a += 1 7 b += start 8 9 return count_and_sum(start + 1 ,end,a,b) 10 11 counting,total_sum = count_and_sum(1,998)View Code12 print("個數是%d, 總和是%d"%(counting,total_sum ))
只能計算到998,否則RecursionError: maximum recursion depth exceeded in comparison
2、列表生成式實現
1 def count_and_sum(start=0,end=0): 2 3 num_list = [num for num in range(start,end + 1) if num % 3 == 0 and num % 7 ==0] 4 5 return len(num_list),sum(num_list )View Code6 7 counting,total_sum = count_and_sum(1,14333345) 8 9 10 print("個數是%d, 總和是%d"%(counting,total_sum ))
3、生成器實現
1 def count_and_sum(start=0,end=0): 2 3 gen_num = (num for num in range(start,end + 1) if num % 3 == 0 and num % 7 ==0) 4 5 counting = total_sum = 0 6 7 forView Codenum in gen_num: 8 counting += 1 9 total_sum += num 10 return counting,total_sum 11 12 counting,total_sum = count_and_sum(1,14333345) 13 14 print("個數是%d, 總和是%d"%(counting,total_sum ))
計算指定範圍內能整除的個數及總和