Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/131: Рейтинг темы: голосов - 131, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 08.10.2010
Сообщений: 14

Проверить, является ли число N числом Фибоначчи

18.10.2010, 16:56. Показов 25756. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ДАНО ЦЕЛОЕ ЧИСЛО N(N>1).Последователность чисел Фибоначчи Fk определяется следующим образом:
F1=1, F2=1, Fk= Fk-2 + Fk-1, K=3,4... .Проверить,является ли число N числом Фибоначчи.Если является,вывести True,если нет,вывести False.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.10.2010, 16:56
Ответы с готовыми решениями:

Проверить, является ли данное число числом Фибоначчи
Нужно с циклом постусловием!!! Дано целое число N (> 1). Последовательность чисел Фибоначчи FK определяется следующим образом: F1 =...

Написать функцию, которая определяем, является ли данное число числом Фибоначчи
1. Написать функцию, которая определяем, является ли данное число числом Фибоначчи (http://ru.wikipedia.org/wiki/Числа_Фибоначчи). ...

Найти n-ый элемент последовательности Фибоначчи и выяснить является ли он простым числом (Пояснить код)
Найти n-ый элемент последовательности Фибоначчи и выяснить является ли он простым числом. var i, k,n: integer; F: array of...

16
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.10.2010, 17:09
Лучший ответ Сообщение было отмечено как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
var n,a,b,c:integer;
begin
clrscr;
write('n=');readln(n);
if n=1 then write('true')
else
 begin
  a:=1;
  b:=1;
  c:=0;
  while c<n do
   begin
    c:=a+b;
    a:=b;
    b:=c;
   end;
 end;
if c=n then write('true')
else write('false');
readln
end.
3
 Аватар для Дарьюшка
0 / 0 / 0
Регистрация: 03.02.2012
Сообщений: 56
06.02.2014, 20:08
А можно объяснения к этой задаче.
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
06.02.2014, 21:47
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;//подключение модуля для работы с экраном
var n,a,b,c:integer; //Объявление переменных целого типа
begin//начало
clrscr;//очистка экрана, без первой строки проги работать не будет
write('n=');readln(n);//Вводим число n
if n=1 then write('true')//Если n=1 сразу выводим true(правда)
else//иначе
begin
a:=1; //Переменным a и b присвоим значения первых чисел Фибоначчи  
b:=1;
c:=0; //Переменную c обнулим
while c<n do //Пока c<n 
begin
c:=a+b;//Находим следующее число Фибоначчи которое равно сумме двух предыдущих
a:=b;//В переменную а запишем второе число 
b:=c;//А в переменную b запишем найденное следующее число
end;
end;
if c=n then write('true')//Если полученное число равно введенному выводим true 
else write('false');//иначе false выводим
readln//для паузы
end.//конец программы
Добавлено через 1 минуту
Советую прочитать где-нибудь про числа Фибоначчи(это не сложно) иначе тяжело прогу будет понять. Впредь не пишите в темы которым больше года...
1
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
07.02.2014, 07:07
c:=a+b;//Находим следующее число Фибоначчи которое равно сумме двух предыдущих
a:=b;//В переменную а запишем второе число
b:=c;//А в переменную b запишем найденное следующее число
Зачем Вам c?
Code
1
2
b := a+b;
a := b-a;
1
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
07.02.2014, 17:14
Можно и так, но думаю это не столь важно, и код всего на строчку меньше, разве что если задачу сдаешь на сайты автопроверок, то там за краткость кода соревнуются.
0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
07.02.2014, 21:37
разве что если задачу сдаешь на сайты автопроверок, то там за краткость кода соревнуются.
Не на всех..

но думаю это не столь важно
Всего-то лишняя переменная.. Подумаешь..

Люблю кибер за адекватное отношение к критике
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
07.02.2014, 22:16
Цитата Сообщение от Ромаха Посмотреть сообщение
Всего-то лишняя переменная..
А нас что, кто-то в количестве переменных ограничивает иль во времена DOS живем когда каждый килобайт дорог?
Цитата Сообщение от Ромаха Посмотреть сообщение
Люблю кибер за адекватное отношение к критике
Не понял?
0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
07.02.2014, 22:20
А нас что, кто-то в количестве переменных ограничивает иль во времена DOS живем когда каждый килобайт дорог?
И что? Писать говнокод из-за того, что памяти много и шарманки стали шустрые?
тыц
Ограничения глянь..
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
07.02.2014, 22:25
Цитата Сообщение от Ромаха Посмотреть сообщение
И что? Писать говнокод из-за того, что памяти много и шарманки стали шустрые?
Если речь идет про олимпиады, согласен. Да и вообще чем короче решение ,тем лучше. Но понимаете,лишняя переменная - мелкий недочет той проги. Да лучше убрать лишнюю переменную, но это ж не такой прям жуткий недостаток.
1
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
07.02.2014, 22:27
Если речь идет про олимпиады, согласен.
И не только про олимпиады..
Да и вообще чем короче решение ,тем лучше.
Спорный момент
Да лучше убрать лишнюю переменную, но это ж не такой прям жуткий недостаток.
Сейчас соглашусь.. но 1-ый пост был похож на : "Работает? Ну и всё! Отстань!"..
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
07.02.2014, 22:37
Цитата Сообщение от Ромаха Посмотреть сообщение
Работает? Ну и всё!
Ну так а что? Не думаю что препод будет так придираться. Код нужно оптимизировать, но тогда когда работает очень медленно. А против вашего решения против не имею ничего, сам люблю читать посты, где решение лучше. Просто ваше решение не намного круче.
0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
07.02.2014, 22:38
Не думаю что препод будет так придираться.
Мой бы придрался (за что честь ему и хвала)
Код нужно оптимизировать, но тогда когда работает очень медленно.
Код нужно оптимизировать ВСЕГДА..
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
07.02.2014, 22:46
Но все-таки круче хоть чуть-чуть!

Добавлено через 1 минуту
Цитата Сообщение от Ромаха Посмотреть сообщение
Код нужно оптимизировать ВСЕГДА..
А представьте ситуацию: олимпиада, ограничений по времени и памяти не пишут (их нет). Задача простая и решить ты можешь, только код длинный. Да, решение твое жуткое,НО это первое что тебе пришло в голову и времени на оптимизацию не много.

Добавлено через 6 минут
А вообще если есть время, оптимизировать нужно - не спорю.
0
 Аватар для APALoff
1648 / 1077 / 1081
Регистрация: 03.07.2013
Сообщений: 4,507
08.02.2014, 00:27
Лучший ответ Сообщение было отмечено ildwine как решение

Решение

Перебором до 78-ого элемента:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Var n,i :Longint;
  Flag : Boolean;
Function GetNFibonanchi(a,b,n : Longint) : Longint;
Begin
  If n>3 then GetNFibonanchi:=GetNFibonanchi(a+b,a,n-1)
    else GetNFibonanchi:=a+b;
End;
Function GetNFib(nn : Longint) : Longint;
Begin
  If nn<1 then GetNFib:=0
    else GetNFib:=GetNFibonanchi(1,0,nn+1);
End;
Begin  { 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233 }
  Readln(n);
  Flag:=False;
  If n<=375819880 then
    For i:=1 to 78 do
      If GetNFib(i)=n then Flag:=True;
  Writeln(Flag);    
End.
0
354 / 135 / 28
Регистрация: 16.12.2012
Сообщений: 607
Записей в блоге: 1
08.02.2014, 06:15
А представьте ситуацию: олимпиада, ограничений по времени и памяти не пишут (их нет). Задача простая и решить ты можешь, только код длинный. Да, решение твое жуткое,НО это первое что тебе пришло в голову и времени на оптимизацию не много.
Прийти домой и переписать..
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
08.02.2014, 10:46
Вы непобедимый!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2014, 10:46
Помогаю со студенческими работами здесь

Дано целое число N (> 1). Определить, является ли число N числом Фибоначчи
Дано целое число N (&gt; 1). Определить, является ли число N числом Фибоначчи. Если является, то вывести сообщение: «N — число Фибоначчи»,...

Определить, является ли число N числом Фибоначчи
Дано целое число N (&gt; 1). Определить, является ли число N числом Фибоначчи. Если является, то вывести сообщение: «N — число Фибоначчи»,...

Определить, является ли число числом Фибоначчи
Дано натуральное n . Определить, является ли оно числом Фибоначчи , т.е. является ли элементом последовательности...

Написать программу, которая определяет, является ли заданное число числом Фибоначчи
Числа Фибоначчи строятся следующим образом: 1, 1, 2, 3, 5, …. В этой последовательности, начиная с третьего числа, каждый следующий член...

Проверить истинность высказывания: "Данное целое число является четным двузначным числом"
Проверить истинность высказывания: &quot;Данное целое число является четным двузначным числом&quot;. (выручайте)


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru