【问题标题】:Filling a list with position number用职位编号填写列表
【发布时间】:2019-12-16 11:58:21
【问题描述】:

阶乘级数定义如下:

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

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

  1. 要求用户输入整数Q

  2. 创建Q整数列表

  3. 在位置编号j 中使用阶乘的j<sup>th</sup> 项填充所有列表 系列,由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)

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

【问题讨论】:

  • 请发布您的尝试以及您遇到的问题
  • 我没有看到问题?
  • 我不确定如何完成它。我不明白“用阶乘序列的第 j 项在位置编号 j 中填充所有列表”是什么意思,由 factorial() 函数计算得出“
  • 因此,如果您的 Q 输入为 3,您将有一个包含 3 个项目的列表,索引从 0、1、2 开始。对于该列表中的每个索引位置,您应该使用阶乘值填充它那个位置。但是,为了清楚起见,您应该询问谁给了作业
  • 感谢@Chris Doyle,但我不明白如何填充索引位置

标签: python list function factorial


【解决方案1】:

问题陈述仍然不完全清楚,所以也许你应该回到给你分配问题的人那里,让他们澄清。但是,我的看法是你有一个阶乘函数。并向用户询问整数值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]      

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 2017-07-25
    • 2020-08-16
    相关资源
    最近更新 更多