Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> найти k-цифру последовательности фибоначи 
:(
    Опции темы
missmilke
Дата 11.12.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.12.2009

Репутация: нет
Всего: нет



например 9 цифрой будет 2
я так полагаю надо записать эту последовательность в список строк и вытащить от туда по номеру необходимую цифру.Но как это сделать?
PM MAIL   Вверх
bems
Дата 11.12.2009, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



9-й цифрой не будет 2

Код

function F(k: Integer): Integer;
begin
Assert(k > 0);
if k in [1, 2]
   then Result := 1
   else Result := F(k - 1) + F(k - 2)
end;


Это только для положительных k

Это сообщение отредактировал(а) bems - 11.12.2009, 21:10


--------------------
Обижено школьников: 8
PM MAIL   Вверх
bems
Дата 11.12.2009, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Есть еще формула Бине


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Hinidu
Дата 13.12.2009, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 5.12.2009
Где: Калининград

Репутация: нет
Всего: нет



Какие ограничения на k? Если маленькие, то можно просто сделать, если большие, то длинную арифметику нужно применять.

bems, здесь имеется ввиду 9ая цифра, а не 9й элемент последовательности Фибоначчи:
1,1,2,3,5,8,13,21
9ая цифра в этой последовательности 2

Это сообщение отредактировал(а) Hinidu - 13.12.2009, 21:01
PM MAIL ICQ   Вверх
missmilke
Дата 14.12.2009, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.12.2009

Репутация: нет
Всего: нет



k<=2000
PM MAIL   Вверх
Hinidu
Дата 15.12.2009, 00:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 5.12.2009
Где: Калининград

Репутация: нет
Всего: нет



При таких ограничениях тебе хватит первых 120 чисел. Наибольшие из них в int64 не влезут, но можно с длинной арифметикой их найти. Дать алгоритм? Или все-таки хочешь записать их как строки?
Если да, то вот алгоритм поиска k-ого символа в массиве строк:
Код

j:=1;
while k>length(s[j]) do
  begin
  dec(k,length(s[j]));
  inc(j);
  end;
write(s[j,k]);

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.