Heim  >  Artikel  >  Java  >  So erstellen Sie ein einfaches Beispiel für eine Java-Rekursion

So erstellen Sie ein einfaches Beispiel für eine Java-Rekursion

coldplay.xixi
coldplay.xixiOriginal
2020-10-23 11:39:1612590Durchsuche

So erstellen Sie eine Java-Rekursion: Erstellen Sie zunächst eine klare Rekursionsendbedingung. Legen Sie dann die Beurteilungsbedingung fest. Der Code lautet [private static int sumNum(int n){if (n == 1){return 1;}return n + sumNum( n-1)}].

So erstellen Sie ein einfaches Beispiel für eine Java-Rekursion

So erstellen Sie eine Java-Rekursion:

Die Programmiertechnik, bei der sich ein Programm selbst aufruft, wird Rekursion genannt. Rekursion als Algorithmus wird in Programmiersprachen häufig verwendet. Ein Prozess oder eine Funktion verfügt über eine Methode, sich selbst direkt oder indirekt in ihrer Definition oder Beschreibung aufzurufen. Sie wandelt normalerweise ein großes und komplexes Problem in ein kleineres Problem um, das dem ursprünglichen Problem ähnelt und nur eine kleine Anzahl von Programmen löst um die mehrfach wiederholten Berechnungen zu beschreiben, die im Problemlösungsprozess erforderlich sind, wodurch die Menge an Programmcode erheblich reduziert wird. Die Kraft der Rekursion liegt darin, unendliche Sammlungen von Objekten mit endlichen Aussagen zu definieren. Im Allgemeinen erfordert die Rekursion Randbedingungen, einen rekursiven Vorwärtsabschnitt und einen rekursiven Rückkehrabschnitt. Wenn die Randbedingungen nicht erfüllt sind, schreitet die Rekursion voran; wenn die Randbedingungen erfüllt sind, kehrt die Rekursion zurück.

Schauen wir uns zunächst das einfachste Summationsbeispiel an.​

<span style="font-size:18px;">public static void main(String[] args) {
System.out.println(sumNum(100)); //输出:5050
}
//求1-100的和
private static int sumNum(int n) {
if (n == 1) {
return 1;
}
return n + sumNum(n-1);
}</span>

Im Folgenden verwenden wir Rekursion, um die Fibonacci-Folge zu implementieren.

Die Fibonacci-Folge, auch als Goldene-Schnitt-Folge bekannt, bezieht sich auf eine solche Folge: 0, 1, 1, 2, 3, 5, 8, 13, 21, ... In der Mathematik ist die Fibonacci-Folge definiert rekursiv wie folgt: F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2) (n≥2, n∈N* ) In der modernen Physik gilt Quasikristallstruktur, Chemie und anderen Bereichen hat die Fibonacci-Folge direkte Anwendungen.

//用递归求解
public static int fib(int n) {
if (n == 0)
return 0;
if (n == 1 || n == 2)
return 1;
return fib(n - 1) + fib(n - 2);
}
//用循环求解
public static int fib2(int n) {
int a = 0, b = 1, c = 1;
if (n == 0)
return 0;
if (n == 1 || n == 2)
return 1;
for (int i = 0; i < n - 1; i++) {
c = a + b;
a = b;
b = c;
}
return c;
}
//用数组求解
public static int fib3(int n) {
int[] arr = new int[n + 1];
arr[0] = 0;
arr[1] = 1;
for (int i = 2; i <= n; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[n];
}

Schauen wir uns ein weiteres Beispiel an: die Berechnung der Fakultät.

Fakultät ist ein arithmetisches Symbol, das 1808 von Christian Kramp (1760-1826) erfunden wurde. Es ist ein mathematischer Begriff.

Die Fakultät (Englisch: Fakultät) einer positiven ganzen Zahl ist das Produkt aller positiven ganzen Zahlen, die kleiner und gleich der Zahl sind, und die Fakultät von 0 ist 1. Die Fakultät einer natürlichen Zahl n wird mit n! geschrieben. Das heißt, n!=1×2×3×...×n. Fakultät kann auch rekursiv definiert werden: 0!=1, n!=(n-1)!×n.

//用递归计算阶乘
public static int jc(int n)
{
//结束条件
if ( n == 1)
return 1;
//递归条件
return n * jc(n-1);
}
//用for循环实现阶乘
public static int jc2(int n)
{
int sum = 1;
for (int i = 1; i <= n; i++) {
sum *= i;
}
return sum;
}

Bedingungen für die Rekursion:

1. Endbedingung: Es muss eine klare Endbedingung für die Rekursion geben, die als Rekursionsausgang bezeichnet wird.

2. Rekursive Bedingungen: Rekursiver Algorithmus

Eigenschaften der Rekursion:

1. Rekursive Algorithmen ermöglichen es den Menschen im Allgemeinen, die Operationsstruktur auf einen Blick zu erkennen, was der natürlichen Sprache der Mathematik sehr nahe kommt .

2. Hoher Speicherverbrauch: Während des rekursiven Aufrufvorgangs öffnet das System einen Stapel, um die Rückgabepunkte, lokalen Mengen usw. jeder Schicht zu speichern. Zu viele Rekursionen können leicht zu einem Stapelüberlauf usw. führen. Daher wird im Allgemeinen nicht empfohlen, rekursive Algorithmen zum Entwerfen von Programmen zu verwenden.

Verwandte Lernempfehlungen: Java-Grundlagen-Tutorial

Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein einfaches Beispiel für eine Java-Rekursion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn