Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
sergiy
6 лет назад

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

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

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


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

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

8
435.090 GOLOS
На Golos с October 2016
Комментарии (4)
Сортировать по:
Сначала старые