Проверьте входные данные, принадлежащие номерам Фибоначчи, в Python

Я хотел бы спросить, как я могу извлечь список фибо-списка, а затем проверить, находится ли входное значение пользователем внутри фибо-списка.

a , b = 1, 1 while num <= sys.maxint: fibo == a , b = b, a+b if num == (b +a+b): print "It is a Fibonacci number" break else: print "It is not a Fibonacci number" break 

Спасибо!

4 Solutions collect form web for “Проверьте входные данные, принадлежащие номерам Фибоначчи, в Python”

Используя более сложный тест числа Фибоначчи , вы можете использовать

 def is_fibonacci(n): phi = 0.5 + 0.5 * math.sqrt(5.0) a = phi * n return n == 0 or abs(round(a) - a) < 1.0 / n 

(Это, пожалуй, самый эффективный способ определить, является ли число числом Фибоначчи, и это, скорее всего, не предназначено для вашей домашней работы. Я просто включил этот ответ для справок в будущем).

Питонический однострочный

 def is_fibonacci(n): return n >= 0 and (n==0 or sqrt( 5*n*n - 4).is_integer() or sqrt( 5*n*n + 4).is_integer()) 

Возможно, не очень эффективное решение – использование формулы закрытия более эффективно (см . Ответ Свена ), но вы можете сделать это:

 def fibs(): a,b = 0,1 yield a yield b while True: a,b = b,a+b yield b n = int(raw_input("please, enter a number ")) for fib in fibs(): if n == fib: print "your number is a Fibonacci number!" break if fib > n: print "your number is not a Fibonacci number!" break 

Генератор fibs дает вам список чисел Фибоначчи. Вы можете просмотреть список, и каждый номер, который вы можете проверить, совпадает ли он с введенным пользователем (в этом случае вы закончили), или если он больше, чем тот, который был введен пользователем (а также в этом случае, сделанный).

Надеюсь, это полезно, по крайней мере, для понимания генераторов Python.

 x = int(input("Enter a number: ")) A = [0, 1] for i in range(2,720): A.append(A[i-1]+A[i-2]) bool=False for i in range(2,720): if x==A[i]: bool=True break if bool==True: print "Found,Index is:",i+1 else: print "Not Found" 
  • Как найти класс класса оформленного метода в Python
  • Не удается остановить веб-сервер в Google App Engine Launcher
  • Строка, разделенная индексами в Python
  • Как программно определить, является ли свойство ndb многозначным
  • TypeError: объект «NoneType» не подлежит подписке
  • IntelliJ-IDEA Python тип проверки - неправильный ожидаемый тип?
  • Можно ли изменить реализацию метода экземпляра без изменения всех других экземпляров одного и того же класса?
  • Есть ли функция в Python для перечисления атрибутов и методов конкретного объекта?
  • Обмен кодом между модулями в проекте GAE
  • RFCOMM без сопряжения с использованием PyBluez на Debian?
  • python: как работает привязка
  • Python - лучший язык программирования в мире.