python练习,求1~n阶乘之和
# -*- coding:utf-8 -*-
#yys
# 本示例计算1—n的阶乘之和
# 1+
# 1*2+
# 1*2*3+
# 1*2*3*4+
# ......
#1*2*3*4*...*n
import sys
print(sys.version) #3.6.7 |Anaconda, Inc.| (default, Oct 28 2018, 19:44:12) [MSC v.1915 64 bit (AMD64)]
#方法1,最直接,采用递归
num=input("请输入正整数")
while (not num.isdigit()) or (num=="0"):
num = input("请再次输入正整数")
print(num)
def fun1(n):
if n==1:
return 1
else:
return n*fun1(n-1)
print()
sum_all_1=0
for i in range(1,int(num)+1):
sum_all_1+=fun1(i)
print(sum_all_1)
print()
print("n阶之和,如下:")
print(sum_all_1)
# 方法2
# for 循环
result=1
sum_all_2=0
list1=[]
for i in range(1,int(num)+1):
result*=i
list1.append(result)
sum_all_2+=result
print()
print("n阶之和,如下:")
print(sum_all_2)
print(sum(list1))
#方法3
print("&"*10)
import math
sum_all_3=0
for i in range(1,int(num)+1):
sum_all_3+=math.factorial(i)
print("n阶之和,如下:")
print(sum_all_3)

