【基础】练习册4-Python3_计算阶乘和

代码如下:

#计算阶乘和(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))

你可能感兴趣的:(【基础】练习册4-Python3_计算阶乘和)