Fara í innihald

Endurkvæmt fall

Úr Wikipediu, frjálsa alfræðiritinu

Endurkvæmt fall er fall sem kallar á sjálft sig beint eða óbeint, endurkvæm föll eru mikið notuð í fallaforritun því þau koma í stað venjulegra lykkja.

Í þessu C99 forriti eru tvö föll, rfactorial og factorial skilgreind, það fyrra reiknar aðfeldi tölunnar 5 á endurkvæman hátt en það seinna reiknar það sama með for-lykkju.

#include <stdio.h>

int rfactorial(int n)
{
        if (n == 1)
                return 1;
        return n * rfactorial(n - 1);
}

int factorial(int n)
{
        int total = 1;
        for (int i = n; i >= 1; --i)
                total *= i;
        return total;
}

int main(void)
{
        const int nr = 5;
        printf("%d\n", rfactorial(nr));
        printf("%d\n", factorial(nr));

        return 0;
}