JavaRush /Java-Blog /Random-DE /Rekursion auf den Punkt gebracht
vinsler
Level 35

Rekursion auf den Punkt gebracht

Veröffentlicht in der Gruppe Random-DE
Was ist Rekursion in Java, eine Art völliger, unverständlicher Mist, lassen Sie uns das durchgehen.
Rekursion auf den Punkt gebracht - 1
Beispiel:
public class Recursion {
        public static void main(String[] args) {
            System.out.println("Изначальный REC ( 15 , 9 )" );
            System.out.println(rec(15,9)); // запускаем sout с возвращаемым функцией [rec] результатом
        }

        static int rec (int m, int n) { // передаем в функцию [rec] 2 числа
            if(m % n == 0) { // если первое число [m] делится на второе число [n] нацело, то возвращаем его
                System.out.println("Окончателное число " + n);
                return n;
            } else {
                // если не делится нацело, то перезапускаем функцию и заносим в него другие аргументы :
                // в качестве первого уже будет второе число [n],
                // а в качестве второго будет остаток от деления первого[m] на второе[n] 15 / 9 = 1 (+ остаток 6)
                System.out.println("Заносим в REC (" + n + " , " + m % n + ")");
                return rec(n,m % n);
            }
        }
Sie können diesen Code kopieren und selbst testen. Beschreibung dessen, was im Inneren mit den Variablen passiert: zunächst 15, 9 geteilt 15 / 9 = 1, Rest 6 , wenn ein Rest vorhanden ist, wird die neue Funktion gestartet, aber die Werte werden bereits 9, 6(aus dem Rest) sein geteilt 9 / 6 = 1, Rest 3 , wenn es einen Rest gibt , dann wird die neue Funktion gestartet, aber die Werte werden bereits 6, 3(vom Rest) dividiert 6 / 3 = 2, Rest 0 wenn es keinen Rest gibt, wird die zweite Zahl von der Funktion ausgegeben 3 . Schauen wir uns nun alles genauer an, für mich Oma.
  1. Bei der Rekursion in Java wird eine Funktion innerhalb der Funktion selbst ausgeführt.
  2. Wenn eine Funktion gestartet wird, wird alles, was innerhalb der Funktion getan wurde, gelöscht und eine neue Funktion mit neuen Parametern gestartet.
Mit anderen Worten: Wenn Sie das Wort Start derselben Funktion [rec] sehen, dann nehmen Sie diese Funktion ganz am Anfang ihrer Beschreibung, übertragen Sie die angegebenen Parameter dorthin und sehen Sie, was als nächstes passiert. Das ist die ganze Erklärung. Wir führen die Funktion aus, legen darin bestimmte Parameter fest, bei denen entweder die Rekursion gestartet oder ein Ergebnis zurückgegeben wird. Das ist das ganze Geheimnis. PS: Ich habe direkt aus dem Kopf heraus geschrieben und einem Freund bei einer Sache geholfen, daher sind alle Kritiken und Verbesserungen willkommen. )))
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION