Percobaan
Program 7.1 Cetak bilangan
#include <stdio.h>
void cetak(int n);
main(void) {
cetak(5);
}
/*
* fungsi cetak()
* tipe kembalian: void
* parameter:
* n: int
* n sebagai jumlah bilangan
*
*/
void cetak(int n) {
if(n >= 0) { // syarat rekursi, n >= 0
printf("%d\n", n); // mencetak n
cetak(n - 1); // rekursi
}
}
Program 7.2 Jumlah
#include <stdio.h>
int jumlah(int x);
int main(void) {
int n;
printf("n: ");
scanf("%d", &n);
printf("%d", jumlah(n));
return 0;
}
/*
* fungsi jumlah()
* tipe kembalian: int
* parameter:
* x: int
* x sebagai suku bilangan
*
*/
int jumlah(int x) {
if(x == 0) // syarat rekursi berhenti
return 0;
else
return x + jumlah(x - 1); // rekursi
}
Program 7.3 Piramid
#include <stdio.h>
void piramid(int t);
int main(void) {
int tinggi;
printf("tinggi piramid: ");
scanf("%d", &tinggi);
piramid(tinggi);
return 0;
}
/*
* fungsi piramid()
* tipe kembalian: int
* parameter:
* t: int
* t sebagai tinggi
*
*/
void piramid(int t) {
int i;
if(t >= 1) { // syarat rekursi, t >= 1
for(i = 1; i <= t; i++) // menggambar karakter *
printf("*");
printf("\n");
piramid(t - 1); // rekursi
}
}
Program 7.4 Faktorial
#include <stdio.h>
int faktorial(int n);
int main(void) {
int n;
printf("Masukkan bilangan: ");
scanf("%d", &n);
printf("Faktorial %d! = %d", n, faktorial(n));
return 0;
}
/*
* deklarasi fungsi faktorial()
* tipe kembalian: int
* parameter:
* n: int
*
* n sebagai bilangan yang dihitung
*/
int faktorial(int n) {
// bila n bernilai < 2 maka
if(n < 2) {
// fungsi mengembalikan nilai 1
// sekaligus sebagai batas rekursi akan berhenti
return 1;
} else {
// proses rekursi
// di sini terjadi pemanggilan dirinya sendiri
// faktorial(n) = n * faktorial(n - 1);
return n * faktorial(n - 1);
}
}
Program 7.5Fibonacci
#include <stdio.h>
int fibonacci(int n);
int main(void) {
int n;
printf("Masukkan suku: ");
scanf("%d", &n);
printf("Bilangan Fibonacci ke-%d adalah %d", n, fibonacci(n));
return 0;
}
/*
* fungsi fibonacci()
* tipe kembalian: int
* parameter
* n: int
* n sebagai suku bilangan
*
*/
int fibonacci(int n) {
if(n <= 2) // syarat rekursi, n <= 2
return 1;
else
return fibonacci(n - 2) + fibonacci(n - 1); // rekursi
}
No comments:
Post a Comment