python第二次作业2019-03-21
2019-03-21 本文已影响0人
愉快先生
image.png
'''要求能输出第N项,默认输出第10项'''
#这是循环方法:
def fib1(n=10):
l=range(2,20)
list=[0,1]
for i in l:
list.append(list[i-1]+list[i-2])
return print(list[n])
fib1(1)
#下面是递归方法:
#很难受,搞了半天,不能在return里面打印,在外面打印。很搞笑,心情复杂
#但是为什么不能 print(fib2(n - 1) + fib2(n - 2)) ???????
def fib2(n=10):
if n==1:
return 1
elif n==2:
return 1
return fib2(n - 1) + fib2(n - 2)
print(fib2(3))
'''第二道题:求阶乘,这里是函数,在test.py中是调用这个函数'''
#循环方法:
def fact1(n):
if (n == 0 or n == 1):
return 1
else:
product=1
while n >=2:
product=product*n * (n - 1)
n = n - 2
return product
#return fact1(n)
print(fact1(1))
#递归写法:
def fact2(n):
if (n==0 or n==1):
return 1
else:
return n*fact2(n-1)
# return fact2(n)
print(fact2(1))