计算指定范围内能整除的个数及总和

Posted 沧海一粒水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算指定范围内能整除的个数及总和相关的知识,希望对你有一定的参考价值。

                    计算指定范围内能被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

 

 




以上是关于计算指定范围内能整除的个数及总和的主要内容,如果未能解决你的问题,请参考以下文章

编写c++程序,计算1000以内能被3整除的整数和并输出

网易笔试题:找出指定区间数列中能被3整除的个数

C语言试题十三之求出1到100之内能被7或者11整除,但不能同时被7和11整除的所有整书,并将他们放在a所指的数组中,通过n返回这些数的个数。

csharp for循环计算范围[1 ... n]中所有奇数整数的总和,它们不能被7整除。

csharp for循环计算范围[1 ... n]中所有奇数整数的总和,它们不能被7整除。

请编程输出1000以内能被3整除的奇数以及这些奇数的和?