Heim  >  Artikel  >  Computer-Tutorials  >  Nicht vertraut mit dem rekursiven Methodencode von Java

Nicht vertraut mit dem rekursiven Methodencode von Java

WBOY
WBOYnach vorne
2024-01-13 19:48:19481Durchsuche

Nicht vertraut mit dem rekursiven Methodencode von Java

Java-Code versteht keine rekursiven Methoden

Dies ist auch eine Schleifenmethode. Für Anfänger kann es schwierig sein, sie zu verstehen ... Lassen Sie es mich erklären

Zum Beispiel ist der Parameter in der Methode fun() 100. Lassen Sie mich ihn in 2 ändern

Der Zweck dieser rekursiven Methode ist die Akkumulation. Das Ergebnis ist das gleiche wie bei der Schleifenakkumulation, die Ausführungsmethode ist jedoch unterschiedlich.

Der Prozess der Programmausführung ist wie folgt:

Wenn Sie 2 übergeben, führt das Programm den Inhalt in else aus

Das heißt, geben Sie temp+fun(temp-1);

zurück

Die tatsächliche Rendite beträgt: 2+Spaß(2-1);

Das heißt: 2+fun(1) ändert den ursprünglichen Parameter 3 in 2;

Lassen Sie mich beginnen. Nehmen Sie also 3 heraus und weisen Sie sie der zuvor definierten Summe zu, sodass die aktuelle Summe=2;

ist

Da es sich um eine rekursive Methode handelt, muss die Methode fun(int temp) wiederholt ausgeführt werden;

Es ist nur so, dass der Parameter jetzt 1 wird

Der nächste Vorgang wird also so ablaufen:

Da der Parameter 1 ist, wird das If eingegeben

Es wird also 1;

zurückgegeben

Die aktuelle Summe sollte also die vorherige Summe plus die 1 sein, die vom aktuellen Spaß(1) zurückgegeben wird

also.....jetzt sollte die Summe sein: 2+1=3;

Ich habe gerade ein Beispiel für den Zyklus zwischen zwei Zahlen gegeben. Der Zyklus zwischen den anderen 98 Zahlen ist auch so

Kurz gesagt bedeutet Rekursion, sich selbst so lange aufzurufen, bis die Bedingungen nicht mehr erfüllt werden können, dann ruft es sich nicht mehr selbst auf

Werfen Sie einen Blick darauf, es ist vielleicht etwas ausführlicher. Ich bin darauf schon einmal gestoßen, aber ich habe niemanden gefragt. Wenn Sie es nicht verstehen, fragen Sie mich noch einmal ...

Rekursiver Java-Algorithmus Wenn Sie ein hohes Einkommen haben, kommen Sie bitte vorbei! Implementiert mittels Rekursion

Die Arbeit ist sehr schön. Wenn Sie eine Schnittstelle auf diesem Niveau erstellen können, sollte Ihnen dieses kleine Problem nicht schwerfallen.

Die Frage hier ist:

1. Um die Struktur dieses Diagramms zu entwerfen, ist die Verwendung eines Arrays am einfachsten.

2. So zählen Sie verbundene Knoten auf. Einfach ausgedrückt geht es darum, oben links, oben rechts, links, rechts, unten links und unten rechts zu beurteilen.

3. Wie bestimmt man die gleiche Farbe nacheinander? Der einfachste Algorithmus ist die Flutungsmethode. Beginnen Sie einfach mit der Suche in den oben genannten 6 Richtungen. Nachdem Sie den nächsten Punkt gefunden haben, beginnen Sie mit der Suche in den 6 Richtungen. . .

Der ungefähre Code lautet wie folgt:

Klasse Kaninchen

{

final int D_UP_LEFT = 1;

final int D_UP_RIGHT = 2;

final int D_LEFT = 3;

final int D_RIGHT = 4;

final int D_DOWN_LEFT = 5;

final int D_DOWN_RIGHT = 6;

getColor () ;

getCloseRibbit (int-Richtung)

{

... // Hier ist die Funktion, um benachbarte Kaninchen in die angegebene Richtung zu bringen

// Wenn nicht, null zurückgeben .

}

int getColor () {}

List checkColor ()

{

ArrayList list = new ArrayList() ;

doCheckColor (list, this) ;

Rückgabeliste ;

}

void doCheckColor (List list, Rabbit r)

{

if (r.getColor () != this.getColor () || list.contains (r))

zurück ;

list.add (dieses) ;

for (int i = D_UP_LEFT ; i

{

Rabbit next = r.getCloseRibbit (i) ;

if (next != null)

next.doCheckColor (Liste, r) ;

}

}

}

Die resultierende Liste enthält die Hasen derselben Farbe, die Sie möchten.

Wie man die rekursive Methode in JAVA verwendet, um nn von 1 auf m zu bringen

Rekursion mit Arrays:

öffentliche Klasse Test12 {

static int M = 4;

static int N = 3;

static int[] a= new int[]{1,2,3,4};

static int[] b = new int[N];

public static void main(String[] args){

C(M,N);

}

statische Leere C(int m,int n){

int i,j;

for(i=n;i

b[n-1] = i-1;

if(n>1)

C(i-1,n-1);

sonst {

for(j=0;j

System.out.print(a[b[j]] + " ");

System.out.println();

}

}

}

}

Ausgabe:

1 2 3

1 2 4

1 3 4

2 3 4

Java implementiert die rekursive Operation n! Wenn n keine ganze Zahl ist, werden Sie aufgefordert, erneut einzugeben

Java implementiert die rekursive Operation n! Geben Sie n ein. Wenn es sich nicht um eine Ganzzahl handelt, werden Sie zur erneuten Eingabe aufgefordert...

port java.util.Scanner;

java.util.regex.Matcher importieren;

java.util.regex.Pattern importieren;

öffentlicher Klassentest {

public int jiecheng(int num) {// rekursive Fakultät

if (num > 1)

return num * jiecheng(num - 1);

else if (num == 1)

return 1;

sonst

return 0;

}

public static void main(String[] args) {

Scanner sc = new Scanner(System.in); // Eingaben über die Tastatur abrufen

String num = "";

Pattern p = Pattern.compile("\d+"); // Regulärer Ausdruck, passende (1 bis N Ziffern) Ganzzahlen

Matcher m = null;

int k = 0;

while (wahr) {

System.out.print („Bitte geben Sie eine Ganzzahl ein:“);

num = sc.nextLine(); // Eine Eingabezeile abrufen

m = p.matcher(num);

if (m.matches()) {

k = Integer.valueOf(num); // String in Ganzzahl konvertieren

Pause;

}sonst

System.out.println („Keine Ganzzahl, bitte erneut eingeben!“);

System.out.println();

}

System.out.println(new Test().jiecheng(k)); //Fakultätsmethode aufrufen

}

}

Mögen Sie in einem geschätzten Land leben und tausend Jahre lang gedeihen, möge Ihrer Familie alles gut gehen und mögen Sie das neue Jahr begrüßen

Das obige ist der detaillierte Inhalt vonNicht vertraut mit dem rekursiven Methodencode von Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen