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

Думаю спрашивать что понравилось больше не стоит)))

Рекурсия даёт нам возможность построить такие вот изображения - фракталы.


Их построение рассмотрим далее...

По поиску вместе с картинками попался и юмор.

программированиеfreebasicкомпьютерыsgfbsgpgобучение
791
435.089 GOLOS
0
В избранное
Сергей
Кибернетик... а кто это? deals.weku.io/@sergiy, serey.io/@sergiy, whaleshares.io/@sergiy, sola.ai/nsergiy
791
0

Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий

Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.

Зарегистрироваться
Комментарии (4)
Сортировать по:
Сначала старые