Fungsi Rekursif Algoritma dan Pemrograman II Teknik Informatika STT Wastukancana Purwakarta
Fungsi REKURSIF Fungsi yang memanggil dirinya sendiri. Contoh: 5! = 5.4.3.2.1 = 5.4! atau n! = n.(n-1)! int faktorial(int n) { if ( n == 0 ) return 1; else return (n * faktorial(n-1)); }
Apa keluaran program berikut #include <stdio.h> int misteri (int a, int b) { if ( b == 1 ) return a; else return a + misteri(a, b-1); } main() { printf (”%d”, misteri(5,3)); return 0; APA YANG DILAKUKAN OLEH FUNGSI TERSEBUT ?
Apa keluaran program berikut #include <stdio.h> int misteri ( int n ) { if ( n == 0 ) return 0; else return n + misteri(n-1); } main() { printf (”%d”, misteri(5)); APA YANG DILAKUKAN OLEH FUNGSI TERSEBUT ?
Apa keluaran program berikut Apakah output fungsi berikut jika a=25? Int misteri(int a){ if(a){ int b=0; a=a/2; b++; return b+misteri(a); }
Apa keluaran program berikut int jumlah(int a, int b) { if (b==0) return a; else return 1+jumlah(a,b-1); } Telusuri fungsi tersebut jika dipanggil dengan jumlah(3,2)
Apa keluaran program berikut #include <stdio.h> #define SIZE 10 int what(int b[], int size) { if (size == 1) return b[0]; else return b[size-1] + what(b, size-1); } main() { int x, a[SIZE] = {1,2,3,4,5,6,7,8,9,10}; x = what(a, SIZE); printf("%d\n", x); return 0;
Latihan 1 Buat program untuk menjumlahkan bilangan cacah 1, 2, .. sampai dengan n secara REKURSIF. Contoh input: 5 Contoh output (berasal dari 1+2+3+4+5): 15
Latihan 2 Lengkapi program berikut dengan mendefinisikan fungsi jumDigit untuk menghitung jumlah dari setiap digit bilangan bulat. Sebagai contoh, jika diberi input 125 maka output program adalah 8 (dihitung dari 1+2+5). Sedangkan jika diberi input 20 maka output program adalah 2. #include <stdio.h> main() { int n; scanf("%d", &n); printf("%d\n", jumDigit(n)); return 0; }