Tidak biasa dengan kod kaedah rekursif Java
Kod Java tidak memahami kaedah rekursif
Ini juga kaedah gelung Mungkin sukar difahami oleh pemula... Biar saya terangkan
Sebagai contoh, parameter dalam kaedah fun() ialah 100. Biar saya tukar kepada 2
Tujuan kaedah rekursif ini adalah untuk terkumpul Hasilnya adalah sama dengan pengumpulan gelung, tetapi kaedah pelaksanaannya berbeza.
Proses pelaksanaan program adalah seperti berikut:
Apabila anda lulus 2 masuk, program akan melaksanakan kandungan dalam lain
Iaitu, kembalikan temp+fun(temp-1);
Pulangan sebenar ialah: 2+fun(2-1);
Iaitu: 2+fun(1) menukar parameter asal 3 kepada 2;
Biar saya mulakan Ini adalah program pengumpulan, jadi ambil 3 dan tetapkan ia kepada jumlah yang ditakrifkan sebelum ini, jadi jumlah semasa=2;
Oleh kerana ini adalah kaedah rekursif, kaedah fun(int temp) perlu dilaksanakan berulang kali;
Cuma parameter kini menjadi 1
Jadi prosedur seterusnya akan berjalan seperti ini:
Oleh kerana parameter ialah 1, ia akan memasuki if
Jadi ia akan kembali 1;
Jadi jumlah semasa hendaklah jumlah sebelumnya ditambah 1 yang dikembalikan oleh keseronokan semasa(1)
jadi.....sekarang jumlah sepatutnya: 2+1=3;
Saya cuma bagi contoh kitaran antara dua nombor Kitaran antara 98 nombor yang lain pun macam ni
Ringkasnya, rekursi bermaksud memanggil dirinya sepanjang masa sehingga syarat tidak dapat dipenuhi, maka ia tidak akan memanggil dirinya semula
Tengok, mungkin agak banyak saya nak terangkan dengan lebih jelas sebelum ini, tapi saya tak tanya orang lain kalau tak faham atau tak faham, tanya saya lagi ...
Algoritma rekursif Java, sila masuk jika anda mempunyai pendapatan tinggi! Dilaksanakan menggunakan rekursi
Kerjanya sangat cantik Jika anda boleh membuat antara muka tahap ini, masalah kecil ini tidak sukar untuk anda.
Persoalannya di sini ialah:
1. Untuk mereka bentuk struktur graf ini, cara paling mudah ialah menggunakan tatasusunan.
2. Bagaimana untuk menghitung nod yang disambungkan. Ringkasnya, ia adalah persoalan menilai kiri atas, kanan atas, kiri, kanan, kiri bawah dan kanan bawah.
3 Bagaimana untuk menentukan warna yang sama dalam urutan Algoritma yang paling mudah ialah kaedah banjir. Hanya mula mencari dari 6 arah di atas Selepas menemui titik seterusnya, mula mencari dari 6 arah. . .
Kod anggaran adalah seperti berikut:
kelas Arnab
{
int akhir D_UP_LEFT = 1;
int akhir D_UP_RIGHT = 2;
int akhir D_LEFT = 3;
int akhir D_RIGHT = 4;
int akhir D_DOWN_LEFT = 5;
int akhir D_BAWAH_KANAN = 6;
getColor () ;
getCloseRibbit (arah int)
{
... // Berikut ialah fungsi untuk mendapatkan arnab bersebelahan ke arah yang ditentukan
// Jika tidak kembalikan null .
}
int getColor () {}
Semak senarai Warna ()
{
ArrayList list = ArrayList baharu () ;
doCheckColor (senarai, ini) ;
kembali senarai ;
}
kosongkan doCheckColor (senarai senarai, Arnab r)
{
jika (r.getColor () != this.getColor () || list.contains (r))
kembali ;
senarai.tambah (ini) ;
untuk (int i = D_UP_LEFT ; i
{
Arnab seterusnya = r.getCloseRibbit (i) ;
jika (seterusnya != null)
next.doCheckColor (senarai, r) ;
}
}
}
Senarai yang terhasil ialah arnab arnab dengan warna yang sama yang anda mahukan.
Cara menggunakan kaedah rekursif dalam JAVA untuk mendapatkan nn dari 1 hingga m
Rekursi menggunakan tatasusunan:
Ujian kelas awam12 {
int statik M = 4;
int statik N = 3;
int statik[] a= int baharu[]{1,2,3,4};
int statik[] b = int baharu[N];
utama kekosongan statik awam(String[] args){
C(M,N);
}
kekosongan statik C(int m,int n){
int i,j;
untuk(i=n;i
b[n-1] = i-1;
jika(n>1)
C(i-1,n-1);
lain {
untuk(j=0;j
System.out.print(a[b[j]] + " ");
System.out.println();
}
}
}
}
Keluaran:
1 2 3
1 2 4
1 3 4
2 3 4
Java melaksanakan operasi rekursif n! Jika n bukan integer, anda akan digesa untuk memasukkan semula
java melaksanakan operasi rekursif n! , masukkan n, jika ia bukan integer, anda akan digesa untuk memasukkan semula...
port java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Corak;
Ujian kelas awam {
public int jiecheng(int num) {// rekursif faktorial
jika (bilangan > 1)
kembali nombor * jiecheng(nombor - 1);
lain jika (bilangan == 1)
kembali 1;
lain
kembali 0;
}
utama kekosongan statik awam(String[] args) {
Pengimbas sc = Pengimbas baharu(System.in); // Dapatkan input daripada papan kekunci
Nombor rentetan = "";
Corak p = Pattern.compile("\d+"); // Ungkapan biasa, padanan (1 hingga N digit) integer
Penjodoh m = batal;
int k = 0;
sementara (benar) {
System.out.print("Sila masukkan integer:");
num = sc.nextLine(); // Dapatkan baris input
m = p.match(bilangan);
jika (m.match()) {
k = Integer.valueOf(num); // Tukar rentetan kepada integer
rehat;
}lain
System.out.println ("Bukan integer, sila masukkan semula!"
System.out.println();
}
System.out.println(Ujian baharu().jiecheng(k)); //Panggil kaedah faktorial
}
}
Semoga anda tinggal di tanah yang berharga dan makmur selama seribu tahun, semoga semuanya sejahtera untuk keluarga anda, dan semoga anda menyambut tahun baru
Atas ialah kandungan terperinci Tidak biasa dengan kod kaedah rekursif Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini menangani Windows "Invalid_data_access_trap" (0x00000004) ralat, BSOD kritikal. Ia meneroka sebab -sebab biasa seperti pemandu yang rosak, kerosakan perkakasan (RAM, cakera keras), konflik perisian, overclocking, dan malware. Trou

Artikel ini menyediakan petua praktikal untuk mengekalkan sistem sys ene. Ia menangani isu -isu biasa seperti terlalu panas dan rasuah data, yang menawarkan langkah -langkah pencegahan seperti pembersihan, sandaran, dan kemas kini perisian. Penyelenggaraan yang disesuaikan

Artikel ini mengenal pasti lima perangkap biasa dalam pelaksanaan ene sys: perancangan yang tidak mencukupi, latihan pengguna yang tidak mencukupi, penghijrahan data yang tidak wajar, mengabaikan keselamatan, dan ujian yang tidak mencukupi. Kesalahan ini boleh menyebabkan kelewatan projek, kegagalan sistem

Artikel membincangkan penyuntingan Windows Registry, Langkah berjaga -jaga, kaedah sandaran, dan isu -isu yang berpotensi dari suntingan yang salah. Isu utama: Risiko ketidakstabilan sistem dan kehilangan data dari perubahan yang tidak wajar.

Apakah peringatan kesihatan pemacu dalam tetapan Windows dan apa yang perlu anda lakukan apabila anda menerima amaran cakera? Baca tutorial Php.CN ini untuk mendapatkan arahan langkah demi langkah untuk mengatasi keadaan ini.

Artikel membincangkan menguruskan perkhidmatan Windows untuk kesihatan sistem, termasuk permulaan, berhenti, memulakan semula perkhidmatan, dan amalan terbaik untuk kestabilan.

Artikel ini mengenal pasti ENE.SYS sebagai komponen pemacu audio definisi tinggi Realtek. Ia memperincikan fungsinya dalam menguruskan perkakasan audio, menekankan peranan pentingnya dalam fungsi audio. Artikel ini juga membimbing pengguna untuk mengesahkan legitimasinya

Artikel ini menangani kegagalan pemacu audio Windows ASIO.SYS. Penyebab umum termasuk fail sistem yang rosak, ketidakserasian perkakasan/pemandu, konflik perisian, isu pendaftaran, dan perisian hasad. Penyelesaian masalah melibatkan imbasan SFC, Upda Pemandu
