代码如下:
#计算阶乘和(1!+2!+3!+...+n!)
#方法一:递归调用阶乘求和
'''def fact(n):
if n==1:
return 1
else:
return n*fact(n-1)
n=int(input("请输入一个正整数: "))
if n>0:
s=0
for i in range(1,n+1):
s=s+fact(i)
print("%d的阶乘和=%d"%(n,s))
else:
print("input error!")
'''
#方法二:函数嵌套定义
'''def sum(n):
def fact(m):
if(m==1):
return 1
else:
return m*fact(m-1)
s=0
for j in range(1,n+1):
s=s+fact(j)
return s
n=int(input('请输入一个整数:'))
if n>0:
print("%d的阶乘和=%d"%(n,sum(n)))
else:
print("input error!")'''
#方法三:使用while循环
n=int(input("请输入一个正整数: "))
s=0
i=1
fact=1
while(n>=i):
fact*=i #fact为一个过渡参数,根据阶乘和的特点:前后两个阶乘只差一个i
s+=fact
i+=1
print("%d的阶乘和=%d"%(n,s))