Penjelasan: Teknik pemrograman panggilan program itu sendiri disebut rekursi.
Teknik pemrograman program yang memanggil dirinya sendiri disebut rekursi. Rekursi banyak digunakan sebagai algoritma dalam bahasa pemrograman. Suatu proses atau fungsi memiliki metode untuk secara langsung atau tidak langsung menyebut dirinya dalam definisi atau deskripsi. Biasanya mengubah lapisan masalah besar dan kompleks menjadi masalah yang lebih kecil yang mirip dengan masalah asli untuk dipecahkan. Strategi rekursif hanya membutuhkan sejumlah kecil program untuk menggambarkan beberapa perhitungan berulang yang diperlukan untuk proses pemecahan masalah, sangat mengurangi jumlah kode dalam program. Kemampuan rekursi terletak pada menggunakan pernyataan terbatas untuk menentukan satu set objek yang tak terbatas.
Tiga kondisi untuk rekursi:
1. Kondisi batas
2. Bagian Kemajuan Rekursif
3. Segmen pengembalian secara rekursif
Ketika kondisi batas tidak terpenuhi, lanjutkan secara rekursif; Ketika kondisi batas dipenuhi, kembali secara rekursif.
Berikut ini adalah dua contoh program:
1. Gunakan kode java untuk menemukan faktorial 5. (pabrik 5 = 5*4*3*2*1)
paket org.wxp.recursion; / ***Hitung faktorial 5 (hasil = 5*4*3*2*1)*@Author championship.wong*/ test kelas publik01 {public static void main (string [] args) {system.out.println (f (5)); } public static int f (int n) {if (1 == n) return 1; lain return n*(n-1); }} Dalam pertanyaan ini, ketiga kondisi rekursi dianalisis:
(1) kondisi batas: faktorial, kalikan dengan angka terakhir, yaitu, 1, return 1, dan program akan dieksekusi sampai akhir;
(2) Bagian Kemajuan Rekursif: Ketika parameter saat ini tidak sama dengan 1, terus sebut diri Anda;
(3) Segmen Pengembalian Rekursif: Mulai dari angka terbesar, jika parameter saat ini adalah 5, maka 5*4, yaitu, 5*(5-1), yaitu, N*(n-1)
2. Gunakan kode java untuk menemukan urutan: 1, 1, 2, 3, 5, 8 ...... nomor digit ke -40
paket org.wxp.recursion; / *** Temukan urutan: 1, 1, 2, 3, 5, 8 ...... nomor digit ke -40*/ kelas publik test_02_fibonacci {public static void main (string [] args) {system.out.println (f (6)); } public static int f (int n) {if (1 == n || 2 == n) return 1; lain mengembalikan f (n-1) + f (n-2); }} 3. Deskripsi Masalah: Selesaikan nilai posisi ke -10 dari urutan Fibonacci? (Urutan Fibonacci, juga dikenal sebagai urutan yang dibagi emas, mengacu pada urutan: 1, 1, 2, 3, 5, 8, 13, 21, ... dalam matematika, urutan fibonacci didefinisikan dalam metode rekursif berikut: f0 = 0, f1 = 1, fn = f (n-1)+f (n-2) (n>
Daftar Program:
/** *<p> Judul: Java Recursive Algorithm Contoh </p> *<p> Deskripsi: Gunakan algoritma rekursif untuk memecahkan nilai dari jumlah kelima dari urutan fibonacci </p> *<p> FileCiCT: FIBONACCI.JAVA </P>/Kelas Publik Fibonacci {/Fibonacci. Urutan *Parameter input: int n *Tipe pengembalian: int */ public static int fun (int n) {if (1 == n || 2 == n) {return 1; } else {return (fun (n-1) + fun (n-2)); }} / ** *Metode Deskripsi: Metode utama *Parameter input: string [] args *Jenis pengembalian: void * / public static void main (string [] args) {System.out.println (fun (10)); }}Hasil berjalan adalah sebagai berikut:
Salin kode sebagai berikut: 55