Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/103: Рейтинг темы: голосов - 103, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 22.10.2020
Сообщений: 12

Определить номер числа Фибоначчи значение которого равно заданному числу

22.10.2020, 09:28. Показов 20647. Ответов 7

Студворк — интернет-сервис помощи студентам
Помогиет решением данной задачи
Дано натуральное число A > 1. Определите, каким по счету числом
Фибоначчи оно является, то есть выведите такое число n, что Fn=A.
Если А не является числом Фибоначчи, выведите число -1.

Вотм мой код, но он не верный.

Python
1
2
3
4
5
6
7
8
9
10
11
A=int(input('Enter A: '))
x=x1=1
s=0
while x1<A+2:
   b=x
   x=x1
   x1+=b
   s+=1
if s < A:
    print(s)
else : print(-1)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.10.2020, 09:28
Ответы с готовыми решениями:

Определить номер элемента массива значение которого равно заданному числу
Дано вещественное число А и массив Х(10). Определить номер элемента, равного числу А. Если такого члена нет, то вывести соответствующее...

Найти порядковый номер элемента, значение которого наиболее близко к заданному целому числу
Дано 12 вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к какому-нибудь заданному целому числу Х. Не...

Массив: Определить, есть ли в массиве элемент, значение которого равно числу, введенному с клавиатуры
Написать программу, которая определяет, есть ли в одномерном массиве, заполненном случайным образом, элемент, значение которого равно...

7
Модератор
Эксперт С++
 Аватар для zss
13781 / 10974 / 6491
Регистрация: 18.12.2011
Сообщений: 29,259
22.10.2020, 09:57
Цитата Сообщение от Jeasdk Посмотреть сообщение
while x1<A+2:
зачем тут +2 ?

Цитата Сообщение от Jeasdk Посмотреть сообщение
if s < A:
надо
Python
1
if x1 == A:
1
0 / 0 / 0
Регистрация: 22.10.2020
Сообщений: 12
22.10.2020, 10:40  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
A=int(input('Enter A: '))
x=x1=1
s=0
while x1<A:
   b=x
   x=x1
   x1+=b
   s+=1
if x1 < A:
    print(x1)
else : print(-1)
Внес ваши поправки, но задача не работает: если ввожу А=3, то выводит -1, хотя должно вывести 4.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,318
22.10.2020, 10:51
Лучший ответ Сообщение было отмечено Jeasdk как решение

Решение

Jeasdk,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
A=int(input('Enter A: '))
x=x1=1
s=2
while True:
   b=x
   x=x1
   x1+=b
   s+=1
   if x1 == A:
        print(s)
        break
   elif x1 > A :
        print(-1)
        break
Если ряд = 1,1,2,3,5,8...
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
22.10.2020, 11:15
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
from math import log, sqrt
sqrt5 = sqrt(5)
phi = (1 + sqrt5) / 2
psi = (1 - sqrt5) / 2
 
def fibo(n):
    return round((pow(phi, n) - pow(psi, n)) / sqrt5)
    
def test(x):
    if x == 0:
        return 0
    n = round(log(sqrt5 * x, phi))
    return n if fibo(n) == x else -1
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38203 / 21135 / 4310
Регистрация: 12.02.2012
Сообщений: 34,741
Записей в блоге: 14
22.10.2020, 16:45
Black Fregat, плавающая точка в целочисленной задаче...

Добавлено через 15 минут

Python
1
2
print((lambda n,f,k=1,c=1,p=0: k if n==c else f(n,f,k+1,c+p,c)) \
(int(input("n=")),(lambda n,f,k=1,c=1,p=0: k if n==c else f(n,f,k+1,c+p,c))))
Правда, если ввести число, не принадлежащее ряду Фибоначчи, будет "плюшка"...
0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
22.10.2020, 19:26
Цитата Сообщение от Catstail Посмотреть сообщение
плавающая точка в целочисленной задаче...
Согласен, не очень красиво. Зато формула красивая! С детства ею восхищаюсь
1
0 / 0 / 0
Регистрация: 10.11.2020
Сообщений: 1
10.11.2020, 22:30
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
A = int(input())
x = 0
x1 = 1
s = 1
while True:
    if A == 0:
        print(x)
        break
    b = x
    x = x1
    x1 += b
    s += 1
    if A == 1:
        print(x1)
        break
    if x1 == A:
        print(s)
        break
    elif x1 > A:
        print(-1)
    break
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.11.2020, 22:30
Помогаю со студенческими работами здесь

Определить номер элемента массива, значение которого равно А
Даны целые числа А, N и массив X . Найдите номер элемента массива, значение которого равно A.

Определить номер последнего элемента, значение которого равно 7.
Определить номер последнего элемента, значение которого равно 7.

Определить первый номер элемента массива С[1..8], значение которого равно Р
Определить первый номер элемента массива С, значение которого равно Р

По заданному числу Фибоначчи найти предыдущее и следующее числа Фибоначчи
Дано целое число N(&gt;1), которое является числом Фибоначчи: N=Fk. Найти целые числа Fk-1 и Fk+1 - предыдущие и последующее числа Фибоначчи. ...

По заданному числу Фибоначчи найти предыдущее и следующее числа Фибоначчи
Дано целое число N(&gt;1), которое является числом Фибоначчи: N=Fk. Найти целые числа Fk-1 и Fk+1 - предыдущие и последующее числа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru