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)