29 FreeBASIC - Как же без рекурсии - вычисляем факториал
Познакомившись с подпрограммами у любопытных может возникнуть философский вопрос - а можно ли подпрограмме вызвать саму себя(использовать саму себя)?
Как часто отвечают - "Можно и нужно" и назывется это рекурсия. Рекурсия позволяет творить просто чудеса.
Рассмотрим класический пример рекурсии - вычисление факториала числа
Факториал числа n (натурального т.е. целого и больше единицы) это произведение всех чисел от единицы до него самого включительно - n!
Например: 5!=12345=120
Можно реализовать и с помощью цикла, а можно и с помощью рекурсии. Намекну формулой - n!= n * (n-1)!
Сначала без рекурсии
function factor(byval n as longint) as longint
dim as longint i,p
p=1
for i=1 to n
p=p*i
next i
factor=p
end function
print factor(5)
print factor(10)
print factor(15)
print factor(20)
sleep
А теперь используя её
function factor(byval n as longint) as longint
if n>1 then factor=n*factor(n-1) else factor=1
end function
print factor(5)
print factor(10)
print factor(15)
print factor(20)
sleep
Думаю спрашивать что понравилось больше не стоит)))
Рекурсия даёт нам возможность построить такие вот изображения - фракталы.
Их построение рассмотрим далее...
По поиску вместе с картинками попался и юмор.