用位置号填写列表

问题描述 投票:0回答:1

阶乘级定义如下:

F(0) = 1
F(n) = N * F(n-1) (for n>1)

写一个计算阶乘的第N个项的递归函数factorial(N)系列并返回它。编写一个程序:

  1. 要求用户输入整数Q

  2. 创建Q个整数的列表

  3. 用位置编号j中的阶乘的jth项填充所有列表由factorial()函数计算的系列

  4. 打印列表的内容。

这是我的尝试:

def factorial(N):
    if N<=1:
        return 1
    elif N>=1:
        return int(N*factorial(N-1))
print (factorial(3))
import random
Q=int(input("please enter a value"))
range1 = range(0,Q,1)
for i in range1:
    print(i,end="")
factorial (j)

我不太确定如何完成它。我不明白“通过由factorial()函数计算出的所有列表,在位置编号j中填充阶乘系列的第j个项”的意思是什么

python list function factorial
1个回答
0
投票

它仍然不能完全清楚问题陈述,所以也许您应该找给您分配问题的人,并请他们进行澄清。但是,我认为您具有阶乘功能。并要求用户输入整数值Q。然后,您需要为Q

范围内的每个值创建阶乘结果列表。
def factorial(n):
    if n == 1:
        return 1
    elif n >= 1:
        return n * factorial(n - 1)
    else:
        return 0

#get the value from the user
q = int(input("enter an integer: "))


#verbose method which first creates empty Q length list then fills it
qlist = ['']*q
for j,_ in enumerate(qlist):
    qlist[j] = factorial(j)
print(qlist)


#list comprehension to build and populate the list in one go
qlist = [factorial(i) for i in range(q+1)]
print(qlist)

输出

entered integer: 10
[0, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]
[0, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880]      
© www.soinside.com 2019 - 2024. All rights reserved.