Loading...
Saturday, November 23, 2013

Contoh Program Rekursif

Algoritma Rekursif 
Rekursif merupakan salah satu metode algoritma yang kerap digunakan dalam membuat perulangan, seperti halnya iterasi for, repeat .. until, do.. while, dsb. Perbedaannya adalah dalam sifatnya yang memanggil dirinya sendiri, baik secara langsung ataupun melalui metode yang lainnya. Ciri masalah yang dapat diselesaikan secara rekursif adalah masalah itu dapat direduksi menjadi satu atau lebih masalah-masalah serupa yang lebih kecil. Secara umum metode algoritma rekursi terdiri atas dua komponen utama, yaitu :
  • Bagian induksi (Recursive Step), merupakan satu atau lebih kasus yang menyelesaikan masalah serupa namun dengan ukuran data ataupun metode yang lebih sederhana
  • Bagian penyetop (Basis Step), merupakan satu atau lebih kasus yang paling sederhana dan solusinya tidak perlu lagi terjadi rekursi
 
1. Program FAKTORIAL

#include<stdio.h>
int faktorial(int n)
{
    if (n == 0)
    {return (1);}
    else
    {return n*faktorial(n-1);}
}
int main()
{
    int x;
    printf("angka ");scanf("%d",&x);
    printf("%d ",faktorial(x));
    return 0;
}


2. Program FOBONNACI
#include<stdio.h>

int fibonacci(int n)
{
    if (n == 0)
    {return(1);}
    else
    if (n == 1)
    {return(1);}
    else
    {return fibonacci(n - 1) + fibonacci(n - 2);}
}

int main()
{
    int x;
    int i;
    printf("angka ");scanf("%d",&x);
    for (i = 0;i<x;i++)
    printf("%d ",fibonacci(i));
    return 0;
}


3. Program Pangkat
#include<stdio.h>

int xdany(int a, int b)

{
    if (b == 0)
    {return (1);}
    else
    {return a*xdany(a,b-1);}
}

int main()
{
    int a,b;
    printf("a ");scanf("%d",&a);
    printf("b ");scanf("%d",&b);
    printf("%d ",xdany(a,b));
    return 0;
}

4 comments:

  1. Bermanfaat untuk tugas saya gan. Tq

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. minta tolong mas.ini program saya kok syntak error terus ya.
    #include
    #include
    int factorial(int);
    main()

    {
    int f;
    int n;
    clrscr();
    printf ("Program Menghitung Faktorial \n\n");
    printf ("Masukkan Suatu Bilangan Bulat : ");
    scanf ("%d", &n);
    if (n < 0)
    {

    printf ("Bilangan Harus Positif!!!");
    }
    else
    {
    f = factorial(n);
    printf ("Factorial %d! adalah : %d", n, f);
    }
    getch();

    }
    int factorial(int N)
    {
    int F;

    if (N = 0)

    {
    return (1);
    }
    else
    {
    F = N * factorial (N-1);
    return (F);
    }
    }

    ReplyDelete

 
TOP