Показать сообщение отдельно
  #2  
Старый 15.12.2009, 15:27
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

Цитата:
Сообщение от Asira
Помогите написать рекурсивную функцию без оператора 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
;

Если вы имеете в виду написать вообще без циклов, то как мне кажется (могу ошибаться) это невозможно. Если это принцип против цикла for, можно использовать while, repeat, да даже лэйблы с переходами
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием