Faktorial Dengan For Loop, Goto dan Rekursif di C

Faktorial dari suatu bilangan adalah perkalian bilangan itu dengan bilangan-bilangan yang lebih kecil darinya (Sampai 1)

Jadi 5 faktorial sama dengan 5x4x3x2x1=120

Faktorial disimbolkan dengan tanda seru (!), jadi 5!

Disini aku mencoba membuat fungsi faktorial dengan 3 metode. Metode For Loop, Goto statement, dan Rekursif

For Loop

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int input;
    printf("Masukkan angka yang mau dicari faktorialnya?\n");
    scanf("%d", &input);

    printf("%d! =", input);

    int res = 1;

    for (int i = input; i > 0; i--)
    {
        res = res * i;
        printf(" %d ", i);

        if (i > 1)
        {
            printf("x");
        }
    }

    printf("= %d\n", res);

    return 0;
}

Goto

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int input;
    printf("Masukkan angka yang mau dicari faktorialnya?\n");
    scanf("%d", &input);

    printf("%d! =", input);

    int res = 1;
    int i = input;

perulangan:
    res = res * i;
    printf(" %d ", i);

    if (i > 1)
    {
        printf("x");
    }

    if (i > 1)
    {
        i--;
        goto perulangan;
    }

    printf("= %d\n", res);

    return 0;
}

Rekursif

#include <stdio.h>

void recurf(int cur, int sum)
{

    if (cur == 0)
    {
        printf("= %d\n", sum);
        return;
    }
    else if (cur > 0)
    {
        printf(" %d ", cur);

        if (cur > 1)
        {
            printf("x");
        }

        recurf(cur - 1, sum * cur);
    }
}

int main(int argc, char const *argv[])
{
    int input;
    printf("Masukkan angka yang mau dicari faktorialnya?\n");
    scanf("%d", &input);

    printf("%d! =", input);

    recurf(input, 1);

    // int res = 1;

    // printf("= %d\n", res);

    return 0;
}

Add a Comment

Your email address will not be published. Required fields are marked *