0

For example there are 3 then the program will multiplying the first 3 factorials 2 x 4 x 6 = 48. For example if the user wants 3 then the program will multiply the first 3 factorials only and the sum value will decrease if the initial value is even. type int which contains a lot of even numbers that are wanted and will continue to grow in each recursive

Call:

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

Output:

48

Explanation:

The first 3 even values are 2,4,6. So the results of their multiplication will be yield 48.

Sorry but what is wrong with my program:

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)
Dhaval Taunk
  • 1,662
  • 1
  • 9
  • 17

1 Answers1

2

How about using reduce?

You could generate a range which full with the number starts with initial and the amount is the 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
jizhihaoSAMA
  • 12,336
  • 9
  • 27
  • 49