Модераторы: Alx, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция 
:(
    Опции темы
Pakshin A. S.
Дата 1.1.2005, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Функция F(n) для целых неотрицательных n определена так:
F(0)=0, F(1)=1, F(2n)=F(n), F(2n + 1)=(F(n) + F(n+1)
Для данного N нужно определить и напечатать F(N). N столь велико, что массив из N чисел недопустим...
Вот и все...
PM   Вверх
Fedor
Дата 1.1.2005, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


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

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



Рекурсия
Код

function F(n:longint):longint;
begin
 if n=0 then F:=0 else
 if n=1 then F:=1 else
 if odd(n) then F:=F(n div 2)+F(n div 2+1) else
 F:=F(n div 2);
end;


И еще все-таки зависит от N.

И я, например завел бы массив, в котором было бы первых тридцать пять тысяч значений. Это намного сокращает рекурсию.


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема »


 




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


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

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