68 lines
1.2 KiB
Python
68 lines
1.2 KiB
Python
# n = int(input("Введи число, до которого будут идти поколения "))
|
|
# n = 5
|
|
|
|
def fibonacciRecAux(pokolenia, result, perv, vtor):
|
|
if pokolenia == 1:
|
|
return 0
|
|
tret = perv + vtor
|
|
# result = perv + vtor
|
|
# pokolenia = pokolenia - 1
|
|
if pokolenia == 0:
|
|
return result
|
|
else:
|
|
return fibonacciRecAux(pokolenia - 1, result + tret, vtor, tret)
|
|
|
|
|
|
def fibonacci(n):
|
|
return fibonacciRecAux(n, 0, 1, 0)
|
|
|
|
|
|
def fibonacciIt(pokolenia):
|
|
if pokolenia == 1:
|
|
return 0
|
|
perv = 0
|
|
vtor = 1
|
|
result = perv + vtor
|
|
for i in range(1, pokolenia - 1):
|
|
tret = perv + vtor
|
|
result = result + tret
|
|
perv = vtor
|
|
vtor = tret
|
|
return result
|
|
|
|
|
|
# print(fibonacci(n, 0))
|
|
# print(fibonacciRec(n, 0, 0, 1, 0))
|
|
|
|
# res = fibonacci(n, 0)
|
|
|
|
if fibonacci(5) == 7:
|
|
print('ok')
|
|
else:
|
|
print('wrong for 5')
|
|
|
|
if fibonacci(6) == 12:
|
|
print('ok')
|
|
else:
|
|
print('wrong for 6')
|
|
|
|
if fibonacci(1) == 0:
|
|
print('ok for 1')
|
|
else:
|
|
print('wrong for 1')
|
|
|
|
if fibonacci(2) == 1:
|
|
print('ok')
|
|
else:
|
|
print('wrong for 2')
|
|
|
|
if fibonacci(3) == 2:
|
|
print('ok')
|
|
else:
|
|
print('wrong for 3')
|
|
|
|
if fibonacci(7) == 20:
|
|
print('ok')
|
|
else:
|
|
print('wrong for 7')
|