n = int(input('请输入整数n(n>0):'))
#递归
def fact(n):
if n == 0:
fact1 = 1
else:
fact1 = n * fact(n - 1)
return fact1
#非递归
def notf(m):
num = 1
if n == 0:
num = 1
else:
for i in range(m):
num = m * num
m = m-1
return num
print("递归方式:{0}!= {1}".format(n, fact(n)))
print("非递归方式:{0}!= {1}".format(n, notf(n)))
def fib(n): #定义一个函数(递归)
if n in(1,2): #判断前两个数
return 1 #返回前两个数的定值为 1
return fib(n-1) + fib(n-2)
def nfib(n): #定义一个函数(非递归)
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
if __name__=="__main__":
# 获得斐波那契数列,项数20
for i in range(1, 21):
if i == 11:
print("\n")
print('{:>5}'.format(nfib(i)), end="")
print("\n")
for i in range(1, 21):
if i == 11:
print("\n")
print('{:>5}'.format(nfib(i)),end="")
def min_n(a,b,*c):
min=a
if(a<b):
min=a
else:
min=b
for i in c:
if(i<min):
min=i
return min
print("最小值为:{}".format(min_n(8, 2)))
print("最小值为:{}".format(min_n(16, 1, 7, 4, 15)))
def func(n):
return (max(n), min(n), len(n))
s1 = [9, 7, 8, 3, 2, 1, 55, 6]
s2 = ["apple", "pear", "melon", "kiwi"]
s3 = "TheQuickBrownFox"
for i in (s1, s2, s3):
print("list = ", i)
t = func(i)
print("最大值 = {0},最小值 = {1},元素个数 = {2}".format(t[0], t[1], t[2]))