|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Рекурсивняа функция Делфи
Код:
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, 27.12.2009 в 18:22. |
#2
|
||||
|
||||
Цитата:
Если вы имеете в виду написать вообще без циклов, то как мне кажется (могу ошибаться) это невозможно. Если это принцип против цикла 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; |
#3
|
|||
|
|||
Как это невозможно, а как же рекурсивный спуск)
Код:
function Summ(i:Integer):Integer; begin Result:=0; if i > 0 then Result:=Result+(i*i)+Summ(i-1); end; |
#4
|
|||
|
|||
РЕЗУЛЬТАТ ПОЛУЧАЕТСЯ НЕПРАВИЛЬНЫЙ
|
#5
|
|||
|
|||
Цитата:
Что значит не правильный, по условию задания твоего, проверил, у меня получается правильный) |
#6
|
|||
|
|||
я ВВЕЛА n=3 он вывел 14 а должен был 21 вывести...
|
#7
|
|||
|
|||
Ок, моя функция считает последовательно 1*1 + 2*2 + 3*3 + 4*4
В твоем задании 1*1 + 2*2 + 4*4 + 7*7 ... Немогу понять как у тебя определяется последовательность слагаемых чисел, нужна формула, у меня по порядку, а у тебя ?) Дай формулу по которой определяется следующее слагаемое число и я перепишу функцию под твою задачу, лучше саму задачу дай, как она звучит изначально. что за числа 1, 2, 4, 7...? |
#8
|
|||
|
|||
Код:
function summa2(n:integer):integer; var s,i,a:integer; begin s:=0; a:=1; for i:=1 to n do begin s:=s+a*a; a:=a+i; end; summa2:=s; end; Последний раз редактировалось Asira, 27.12.2009 в 18:22. |
#9
|
|||
|
|||
Что-то типа этого)
Код:
function summa(const StartSum, FirstNum, CountN:integer):integer; begin Result:=0; if FirstNum-1 < CountN then Result:=Result+(StartSum*StartSum)+summa(StartSum+FirstNum, FirstNum+1, CountN); end; Код:
Summa(1,1,N) |
#10
|
|||
|
|||
Спасибо !!!!!!!!!
|