Форум сайта python.su
Написал ради интереса скрипт для вычисления числа Фибоначчи (0, 1, 1, 2, 3, 5, 8, 13.. и тд) по его номеру, но работает не так как надо. При этом ошибку не выдает
def fibonacci(n): if n == 1: # исключение return fibonacci(0) elif n == 2: # исключение return fibonacci(1) elif n > 4: #основная формула расчета return fibonacci((n-2)+(n-1)) else return fibonacci('Ошибка, попробуйте еще раз') n = int(input('Введите номер')) print(fibonacci(n))
Отредактировано oreol (Июль 3, 2016 00:52:10)
Офлайн
>>> def fibonacci(n): ... if n == 1: ... return 0 ... elif n == 2: ... return 1 ... elif n > 2: ... return fibonacci(n - 2) + fibonacci(n - 1) ... else: ... raise ValueError('Ошибка, попробуйте еще раз') ... >>> list(map(fibonacci, range(1, 11))) [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] >>> fibonacci(0) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 9, in fibonacci ValueError: Ошибка, попробуйте еще раз >>>
Офлайн
все работает, просто малость изменил
def Fibinacci(n): if n == 0: return 0 if n == 1 or n == 2: return 1 return Fibinacci(n-1) + Fibinacci(n-2) n = int(input('Введите номер Фибоначчи')) print(Fibinacci(n))
Офлайн