1. 程式人生 > >計算指定範圍內能整除的個數及總和

計算指定範圍內能整除的個數及總和

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)
12 print("個數是%d, 總和是%d"%(counting,total_sum ))
View Code

只能計算到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 )
6 7 counting,total_sum = count_and_sum(1,14333345) 8 9 10 print("個數是%d, 總和是%d"%(counting,total_sum ))
View Code



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     for
num 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 ))
View Code

計算指定範圍內能整除的個數及總和