根据范围获取其中 3 和 7 整除的所有数的和,并返回调用者:符合条件的数字个数以及符合条件的数字的总和 如: def func(start,end):

根据范围获取其中 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!

你可能感兴趣的:(根据范围获取其中 3 和 7 整除的所有数的和,并返回调用者:符合条件的数字个数以及符合条件的数字的总和 如: def func(start,end):)