根据范围获取其中 3 和 7 整除的所有数的和,并返回调用者:符合条件的数字个数以及符合条件的数字的总和 如: def func(start,end):
所有可以用递归解决的问题,都可以用 for 循环来解决.
def func(start,end,geshu=0,zongshu=0):
if type(start) != int or type(end) != int:
return print('ERROR:请输入整数类型!!')
if start == end:
return print('ERROR: 请勿输入相同整数!!')
elif start > end:
res=(start - end)
end_list=[end]
for i in range(res):
end += 1
end_list.append(end)
# print (end_list)
zongshu_list = []
for i in end_list:
if i % 3 == 0 and i % 7 == 0:
geshu += 1
zongshu_list.append(i)
else:
pass
num = geshu
all_num = sum(zongshu_list)
return print ('符合条件的数字个数 %s,符合条件的数字 %s,符合条件的数字总和 %s!' %(num,zongshu_list,all_num))
else:
res=(end - start)
start_list=[start]
for i in range(res):
start += 1
start_list.append(start)
# print (start_list)
zongshu_list = []
for i in start_list:
if i % 3 == 0 and i % 7 == 0:
geshu += 1
zongshu_list.append(i)
else:
pass
num = geshu
all_num = sum(zongshu_list)
return print ('符合条件的数字个数 %s,符合条件的数字 %s,符合条件的数字总和 %s!' %(num,zongshu_list,all_num))
func(3,333)
#输出
符合条件的数字个数 15,符合条件的数字 [21, 42, 63, 84, 105, 126, 147, 168, 189, 210, 231, 252, 273, 294, 315],符合条件的数字总和 2520!
网友评论