IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Рекурсия.Вычисление n-го элемента посл-ти, Вычисление n-го элемента посл-ти чисел Фибоначчи
BSS
сообщение 26.03.2010 1:34
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской
Реальное имя: Серёга

Репутация: -  0  +


Очень нужна рекурсивная реализация для вычисления n-го элемента последовательности чисел Фибоначчи с использованием вспомогательного массива для хранения вычисленных значений
Помогите пожалуйста решить.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
BSS
сообщение 26.03.2010 7:58
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской
Реальное имя: Серёга

Репутация: -  0  +


Ну программа не работает в смысле.(тупо выводит-это о программе).Извините, пожалуйста, если что не так сказал
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 26.03.2010 8:41
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(BSS @ 26.03.2010 7:58) *
Ну программа не работает в смысле.(тупо выводит-это о программе).Извините, пожалуйста, если что не так сказал
Постой, постой. Как это не работатет?..
Ты просил рекурсивную функцию для подсчета чисел Фибоначчи? Тебе и дали эту функцию.
То, что она выводит 11-й элемент последовательности правильно (89) - разве это не подтверждение того, что она работает??..

Почитай Крылова. "Мартышка и очки" называется. Это про тебя. Просишь что-то, а как применить - без понятия..

PS
разобраться он хочет.. ага, держи карман шире. Даже посмотреть, что именно выводится - мы уже не в состоянии..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BSS
сообщение 26.03.2010 14:42
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской
Реальное имя: Серёга

Репутация: -  0  +


Цитата(Lapp @ 26.03.2010 8:41) *

Постой, постой. Как это не работатет?..
Ты просил рекурсивную функцию для подсчета чисел Фибоначчи? Тебе и дали эту функцию.
То, что она выводит 11-й элемент последовательности правильно (89) - разве это не подтверждение того, что она работает??..

Почитай Крылова. "Мартышка и очки" называется. Это про тебя. Просишь что-то, а как применить - без понятия..

PS
разобраться он хочет.. ага, держи карман шире. Даже посмотреть, что именно выводится - мы уже не в состоянии..

********************************
Спасибо Вам, Владимир и Андрей. Я виноват, что не заметил, что там выводится значение функции от 11... fib(11). Ночью дело было...
*************
*************
Программа значит:

const
maxValue = 256;
var
Results: array[1 .. maxValue] of longint;

function fib(n: integer): longint;
begin
if Results[n] = -1 then
if n <= 2 then Results[n] := 1
else Results[n] := fib(n - 1) + fib(n - 2);

fib := Results[n]
end;

var i,n: integer;
begin
readln(n);
for i:= 1 to maxValue do Results[i]:= -1;

writeln(fib(n));
end.


Добавлено через 8 мин.
А что означает строка:

if Results[n] = -1


?

Сообщение отредактировано: Lapp - 26.03.2010 23:19
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 26.03.2010 23:25
Сообщение #5


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(BSS @ 26.03.2010 14:42) *
А что означает строка:
if Results[n] = -1
?

Это значит, что нужный член последовательности еще не посчитан. Перед работой программа инициализирует массив значением -1. Это значение не встречается в последовательности, поэтому оно используется для индикации того, что этот член еще не считался, и программа начинает его вычислять. В противном случае она выдает то значение, которое сохранено в массиве.


Пожалуйста, при публикации программного кода используй тэги кода (Правила Форума, п.5 и правила раздела Задачи, п.2)


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 11:10
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"