Показать сообщение отдельно
  #4  
Старый 23.12.2009, 20:06
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

повелитель реккурентных соотношений блин)
правильное:
1 + [ n(n-1)/2 ] * [ 2 + n(n-1)/2]

Я чуток видоизменил код, так думаю понятнее
Код:
function Func(N : Word) : Int64;
begin
 Result := 1 + (N*(N - 1) div 2) * (2 + N*(N - 1) div 2) ;
end;

function CalculateSum(const N : Word) : Int64;
begin
 if N >= 1 then Result := Func(N) + CalculateSum(N - 1)
  else Result := 0;
end;

Вот пример вызова:
Код:
...
ShowMessage(IntToStr(CalculateSum(3)));
...

удачи)
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием