首页 > 解决方案 > 如何解决n数上的阶乘偶数,然后将它们相乘

问题描述

例如有 3 则程序将乘以前 3 个阶乘 2 x 4 x 6 = 48。例如,如果用户想要 3,则程序将仅乘以前 3 个阶乘,如果初始值为甚至。类型 int 包含许多需要的偶数,并且将在每个递归中继续增长

称呼:

Print (Value (number, initial))
print(value(3,0))

输出:

48

解释:

前 3 个偶数值是 2、4、6。所以它们相乘的结果将是 48。

抱歉,我的程序有什么问题:

def value(number,initial):

    while(initial<=(number)):

        print((initial*2), end="")

        initial = (initial+1)

        print("%d *" %(initial),end='')

        return initial * (str(value(number,initial)))


value(3,0)

标签: pythonfunctionrecursionfunctional-programmingmultiplication

解决方案


怎么用reduce

您可以生成一个range完整的数字开头,initial金额是number

from functools import reduce

def value(number, initial):
    return reduce(lambda x, y: x * y, range(initial + 2, (initial + 2) + 2 * number, 2))

print(value(3, 0))
# 48

推荐阅读