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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2009, 15:16   #1
Asira
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 84
По умолчанию Рекурсивная функция Делфи

Помогите написать рекурсивную функцию без оператора for
Найти сумму: 1( в квадрате)+2(в квадрате)+4(в квадрате)+7(в квадрате)+11(в квадрате)… (n слагаемых)
Код:
function summa3(n:integer):integer;
var s,i,a:integer;
begin a:=1; s:=0; for i:=1 to n do
begin summa3:= summa3(n-1) +a*a;
a:=a+i;
end;end
Asira вне форума Ответить с цитированием
Старый 15.12.2009, 17:37   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

n-ый элемент последовательности равен 1 + (1 + 2 + ... + (n-1)) = 1 + n * (n - 1) / 2.
Код:
function summa3(n: integer): integer;
var a: integer;
begin
a := 1 + n * (n - 1) div 2;
if (n <> 1) then summa3 := a * a + summa3(n-1);
else summa3 := 1;
end;
...
summa3(n);
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 15.12.2009, 17:43   #3
Asira
Пользователь
 
Регистрация: 12.12.2009
Сообщений: 84
По умолчанию

Спасиб!!!!!!!! мой мозг никогда бы этого - 1 + (1 + 2 + ... + (n-1)) = 1 + n * (n - 1) / 2.не осилил
Asira вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си++. Рекурсивная функция. Diamond2107 Помощь студентам 6 02.12.2009 19:48
подпрограмма-функция в делфи sv2311 Помощь студентам 1 09.04.2009 18:14
Задача (рекурсивная) Witaliy Паскаль, Turbo Pascal, PascalABC.NET 2 21.01.2009 06:18