1: Implementasi biasa dari tabel perkalian 99 terlalu sederhana, bahkan seorang programmer pun dapat melakukannya.
paket test.ms;public class Test99 { public static void main(String[] args) { for(int i=1; i<=9;i++){ for(int j=1; j<=i; j++){ Sistem.keluar.cetak(j+" * "+i+ " = "+(i*j) +" "); } Sistem.keluar.println();
2: Gunakan rekursi untuk mengimplementasikan tabel perkalian 99
Kodenya adalah sebagai berikut:
paket test.ms;public class MultiTable { public static void main(String args[]) { m(9 } /** * Cetak tabel perkalian* @param i */ public static void m(int i) { if (i == 1) { Sistem.keluar.println("1*1=1 "); else { m(i - 1); untuk (int j = 1; j <= i; j++) { Sistem.keluar.cetak(j + "*" + i + "=" + j * saya + " "); } Sistem.keluar.println();
Panggil ikon secara rekursif:
Setiap pemanggilan metode akan menghasilkan bingkai tumpukan dan mendorongnya ke tumpukan metode. Ketika panggilan rekursif dilakukan, bingkai tumpukan dalam tumpukan metode akan terlihat seperti gambar di atas.
Lebih intuitif untuk menghapus hubungan referensi bingkai tumpukan dalam metode ini: seperti yang ditunjukkan pada gambar berikut:
Eksekusi akhir dari pemanggilan metode terkait disederhanakan seperti yang ditunjukkan pada gambar di atas. Perhatikan bahwa i telah berubah dan j dimulai dari 1 setiap kali dan kemudian bertambah hingga sama dengan i.
Dengan cara ini, setelah gambar di atas dikeluarkan dari tumpukan, diperoleh 99 tabel perkalian:
Meringkaskan:
Perbandingan loop for bersarang dan implementasi rekursi:
Tumpukan ini terutama digunakan untuk menyimpan bingkai tumpukan. Setiap kali suatu metode dijalankan, operasi push akan terjadi. Oleh karena itu, lebih banyak bingkai tumpukan yang dihasilkan saat rekursi digunakan perulangan for akan dijalankan. Ada metode yang mendorong bingkai tumpukan satu kali, dan hanya ada satu bingkai tumpukan, sehingga menghemat memori.
Selamat datang untuk memberi saya acungan jempol. Hingga tak sadarkan diri.