Rumah  >  Artikel  >  tutorial komputer  >  Tidak biasa dengan kod kaedah rekursif Java

Tidak biasa dengan kod kaedah rekursif Java

WBOY
WBOYke hadapan
2024-01-13 19:48:19422semak imbas

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!

Kenyataan:
Artikel ini dikembalikan pada:docexcel.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam