JavaRush /Java Blog /Random-TL /Recursion sa maikling salita
vinsler
Antas

Recursion sa maikling salita

Nai-publish sa grupo
Ano ang recursion sa Java, isang uri ng kumpleto, hindi maintindihan na crap, pag-usapan natin ito.
Recursion sa maikling salita - 1
Halimbawa:
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);
            }
        }
Maaari mong kopyahin ang code na ito at subukan ito sa iyong sarili. Paglalarawan ng kung ano ang nangyayari sa loob kasama ang mga variable: sa una 15, 9 hinati 15 / 9 = 1, natitira 6 , kung may natitira, pagkatapos ay ang bagong function ay inilunsad, ngunit ang mga halaga ay magiging 9, 6(mula sa natitira) ay nahahati 9 / 6 = 1, natitira 3 , kung may natitira , pagkatapos ay ang bagong function ay inilunsad, ngunit ang mga halaga ay magiging 6, 3(mula sa natitira) ay nahahati 6 / 3 = 2, natitira 0 kung walang natitira, ang pangalawang numero ay output mula sa function 3 . Ngayon tingnan natin ang lahat nang mas detalyado, para sa aking lola.
  1. Ang recursion sa Java ay nagpapatakbo ng isang function mula sa loob mismo ng function.
  2. Kapag ang isang function ay inilunsad, lahat ng ginawa sa loob ng function ay mabubura at isang bagong function ay inilunsad, na may mga bagong parameter.
Sa madaling salita, kung nakikita mo ang salitang paglulunsad ng parehong function [rec], pagkatapos ay kunin ang function na ito sa pinakadulo simula ng paglalarawan nito, ilipat ang mga ibinigay na parameter doon at tingnan kung ano ang susunod na mangyayari. Iyon lang ang paliwanag. Pinapatakbo namin ang function, nagtakda ng ilang mga parameter sa loob, kung saan ang alinman sa recursion ay nagsimula o ang ilang resulta ay ibinalik. Iyon ang buong sikreto. PS: I wrote just from my head, right away and helped a friend for one thing, so all criticism and improvements are welcome. )))
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION