Listing Program
import java.util.Scanner;
public class Nomor2 {
public static void Kombinasi(String x, int b, int c) {
if (b == 0) {
System.out.print(x + " ");
} else {
for (int i = 97; i < 97 + c; i++) {
Kombinasi(x + (char) i, b - 1, c);
}
}
}
Output Program
Penjelasan Program
Program ini mempunyai sebuah fungsi rekursif dengan beberapa parameter.
Parameter pertama (x) adalah sebuah string kosong yang nantinya akan diisi dengan
karakter yang akan dicetak. Parameter kedua (b) dan ketiga (c) adalah sebuah integer
yang mana nilai awalnya sesuai dengan jumlah karakter yang ingin ditampilkan
kombinasinya.
Ketika fungsi rekursif berjalan, yang pertama dilakukan adalah melakukan
pengecekan terhadap b, apabila b = 0 maka akan mencetak nilai string di dalam x.
Namun apabila b != 0 maka akan dilakukan perulangan dengan i = 97 yang mana
apabila dikonversi menjadi sebuah char menurut bilangan ASCII 97 = “a”. Perulangan
akan terus dilakukan hingga i = 97+c, yang mana b dan c adalah bilangan yang
diinputkan oleh user. Nilai i ini yang akan selalu diambil sebagai nilai x yang akan
dikonversi terlebih dahulu menjadi char. Dan apabila sudah mencapai b = 0, maka
string x akan dicetak.
Listing Program
class TowersOfHanoi {
private int totalDisks;
public void moveTower(int numDisks, int start, int end, int temp) {
if (numDisks == 1) {
moveOneDisk(start, end);
} else {
moveTower(numDisks - 1, start, temp, end);
moveOneDisk(start, end);
moveTower(numDisks - 1, temp, end, start);
}
}
Output Program
Penjelasan Program
Program ini memiliki fungsi rekursif yang mempunyai beberapa parameter, yaitu
jumlah disk, tower start, tower temp, dan tower end. Ketika pertama dijalankan maka
akan memindahkan jumlah disk – 1 dari tiang asal ke tiang bantuan, lalu
memindahkan disk terbesar dari tiang asal ke tiang tujuan, dan terakhir memindahkan
jumlah disk – 1 dari tiang bantuan ke tiang tujuan. Fungsi tersebut terus berjalan
sampai disk terakhir dipindahkan ke tiang tujuan.
Penjelasan Program
Program ini mempunyai sebuah fungsi rekursif untuk mencari bilangan yang terdapat
dalam sebuah array. Fungsi tersebut mempunyai beberapa parameter yaitu sebuah
array, int start, int end, dan int n. Ketika program dijalankan maka akan dilakukan
pengecekan apakah end lebih kecil dari start, jika iya maka akan direturn nilai false.
Jika tidak, akan dihitung nilai mid yang didapatkan dari start + end / 2. Dimana nilai
mid ini akan dijadikan patokan pertama untuk mencari bilangan. Apabila nilai dalam
array x index mid sama dengan bilangan yang kita cari, maka akan direturn nilai true.
Jika nilai mid lebih kecil maka nilai mid akan ditambah 1, jika nilai mid lebih besar
maka nilai mid akan dikurang 1.