本题要求实现一个计算非负整数阶乘的简单函数,使得可以利用该函数,求1!+2!+...+n!
"""
递归函数求非负整数的阶乘
1.定义函数:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
2.算法描述:
(1)若输入非负整数n,则定义一个函数factorial(n);
(2)若n=0,则返回值factorial=1;
(3)若n>0,则factorial=n*factorial(n-1),即factorial(n)=n*factorial(n-1);
(4)递归调用函数factorial计算1!+2!+...+n!;
c语言用递归函数求n的阶乘(5)返回值res=1!+2!+...+n!;
(6)结束。
3.算法步骤:
(1)输入非负整数n;
(2)调用函数factorial(n);
(3)若n=0,则返回factorial=1;
(4)若n>0,则factorial=n*factorial(n-1),即factorial(n)=n*factorial(n-1);
(5)运用递归调用函数factorial(n),求出1!+2!+...+n!;
(6)返回值res=1!+2!+...+n!;
(7)结束。
4.算法分析:
(1)该算法每次调用函数factorial时,用递归的方法对输入的n值进行处理,最终求出1!+2!+...+n!;
(2)该算法时间复杂度为O(n)。
"""
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论