Футкция - так?
...::: Приветствую, Всех :::...
Думаю, думаю, но логически понять так и не могу.
В итоге правильно получается что функция решает факториал так:
Index = 5
1) Result := Index*MulNumber(Index-1)
| | |
20 5 4
2) Result := Index*MulNumber(Index-1)
| | |
60 3 20
3) Result := Index*MulNumber(Index-1)
| | |
120 2 60
4) Result := Index*MulNumber(Index-1)
| | |
120 1 120
Только так я понял как она решает ( и понял зачем в конце стоит
Result:=1 ) факториал, но как цифры "скачут" в первом 1) не ясно.
Ведь если Result := Index*MulNumber(Index-1) то это с логической точки
зрения будет выглядеть так:
Result := Index * MulNumber(index-1)
| | | | | |
1) 0 <- 5 * 4 ( index-1 ) =4
2) 20 <- 4 * 3 ( index-1 ) =3
3) 12 <- 3 * 2 ( index-1 ) =2
4) 2 <- 2 * 1 ( index-1 ) =1
Но ведь эта какая-то ерунда!
Правильно ли я понял то как функция вызывает саму себя (рекурсия)?
index=5
...
? 5 ? 5-1
Result:=Index*MulNumber(index-1);
|
||
... ? ? ? 4-1
Result:=Index*MulNumber(index-1);
|
||
... ? ? ? 3-1
Result:=Index*MulNumber(index-1);
|
||
... ? ? ? 2-1
Result:=Index*MulNumber(index-1);
|
||
... ? ? ? 1-1
Result:=Index*MulNumber(index-1);
Если это правильно, то что происходит дальше?
...::: by GENEMI :::...
Номер выпуска : 4317
Возраст листа : 568 (дней)
Количество подписчиков : 523
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349122
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru