Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2010, 15:32   #1
-Spirit-
 
Регистрация: 10.01.2010
Сообщений: 8
По умолчанию рекурсия

помогите довести до ума рекурсию
нужно для сокращения числа итераций учесть свойство симетрии c(n,r)=c(n, n-r)

program fPaskal;
var
r,n:integer;
function c(r,n:integer):integer;
begin
if (r=0) or (r=n) then c:=1 else c:=c(n-1,r)+c(n-1,r-1);
end;
begin
writeln('n i r');
readln(n,r);
writeln(c(n,r));
end.
-Spirit- вне форума Ответить с цитированием
Старый 14.01.2010, 16:40   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

вар1 if r>n div 2 then c:=c(n, n-r)

вар2 if n-r<r then c:=c(n,n-r)
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсия. p@ul Помощь студентам 4 30.12.2009 14:46
Рекурсия Golovastik Общие вопросы C/C++ 7 15.09.2009 20:36
Рекурсия. Си. MAKEDON Помощь студентам 5 03.06.2009 17:52
Рекурсия vitekbest Помощь студентам 1 30.05.2008 22:22
Рекурсия Xeon332 Помощь студентам 5 16.01.2008 20:52