组卷题库 > 高中信息技术试卷库
试题详情
递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用来解决比较复杂的问题。为求解规模为N的问题,设法将它分解成规模较小的问题,从小问题的解容易构造出大问题的解,并且这些规模问题较小的问题也能采用同样的分解方法,分解成规模更小的问题,并能从这些更小问题的解构造出规模较大问题的解。一般情况下,规模N=1时,问题的解是已知的。已知:从1到n的连续自然数相乘的积、叫做阶乘、用符号n!表示。如5!=1×2×3×4×5,规定0!=1。我们用递归算法可以较容易求n的阶乘。求n的阶乘算法可以描述如下:

n!=n*(n-1)!   (n-1)!=(n-1)*(n-2)!   (n-2)!=(n-2)*(n-3)!

2!=2*1!    1!=0!     0!=1

如果把n!写成函数形式,即f(n),f(n)=n*f(n-1)。如f(5)就是表示5!,求5!的过程可以写成如下形式:

f(5)=5*f(4)   f(4)=4*f(3)   f(3)=3*f(2)   f(2)=2*f(1)   f(1)=1

(问题求解)在python中用递归算法求1!+2!+……+n!(n的值为整数,从键盘输入)。请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。

def f(n):

if n==0:

    return 1

else:

    return

s=0

n=int(input("请输入n:"))

for i in:

    s=

print(s)

知识点
参考答案
采纳过本试题的试卷
教育网站链接