1.写一个函数返回一个数的阶乘
例如:123*4
def factorial():
total=1
for i in range(1,num+1):
total*=i
return total
a=int(input('请输入一个数:'))
ret=factorial(a)
print(ret)
运行结果:
请输入一个数:5
120
2、写一个函数实现斐波那契数列
(1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377…)
要求:接收一个参数,返回一个存着等量值的列表
def fbnq(num):
a=1
b=1
if num<=2:
print(a,a+b,end='')
else:
while num>0:
print(b, end=' ') #1 2 3 5
a,b=(b,a+b)
'''
num=4 #a=1,b=2
num=3 #a=2 b=3
num=2 #a=3 b=5
num=1 #a=5 b=8
num=0 #停止循环
'''
num-=1
a=int(input('请输入要取的斐波那契数的个数:'))
fbnq(4)
运行结果:
请输入要取的斐波那契数的个数:4
1 2 3 5
采用递归函数实现:
s=set()
def g(x):
if x==1:
s.add(1)
return 1
elif x==2:
s.add(2)
return 2
ret=g(x-1)+g(x-2)
s.add(ret)
return ret
num=int(input('请输入想要打印的斐波那契数列的个数:'))
ret=g(num)
print(list(s))
print(ret)
运行结果:
请输入想要打印的斐波那契数列的个数:4
[1, 2, 3, 5]
5
递归函数:
lst = [1]
def func(num, a=1, b=2):
if num < 2:
return
else:
lst.append(b)
func(num - 1, b, a + b)
a=int(input('请输入要取的斐波那契数的个数:'))
func(a)
for i in lst:
print(i,end=' ')
运行结果:
请输入要取的斐波那契数的个数:4
1 2 3 5