Liczenie liczb całkowitych od zera
Rozważ plik Java z dwiema klasami: klasa prywatna w następujący sposób:
klasa AclassMetodą, którą należy nazywać, jest MTHD (). Ma parametr „int no”. Metoda jest w klasie, Aclass. Ta metoda liczy się od 0 do 4. Pierwsza linia w metodzie ma dwa stwierdzenia. Pierwszy drukuje parametr, nie. Drugi drukuje miejsce po prawej stronie tego wydrukowanego parametru. Następny wiersz dodaje 1 do nie. Poniższa linia jest stwierdzeniem IF-Compound. Ma warunek, który należy spełnić. Warunkiem, które należy spełnić, to wtedy, gdy nie osiągnie 5. Jeśli 5 nie zostało osiągnięte, „MTHD (nie);” Wzywa się z NO, które dodano do niego 1.
Główną klasą tej metody może być,
Klasa publiczna THEClassPierwsze stwierdzenie w metodzie main () deklaruje liczbę całkowitą, NUM przypisując zero do niej. Aby wywołać metodę, obiekt powinien zostać utworzony z klasy. Następna instrukcja w metodzie main () tworzy obiekt, OBJ z Aclass. Oświadczenie po użyciu tego obiektu do wywołania metody, MTHD (), przekazywania jej argumentu, NUM, który wynosi 0. To jest początek hrabiego. Ostatnie stwierdzenie w metodzie main () drukuje nową linię, po wydrukowaniu wyniku. Wyjście to:
0 1 2 3 4Metoda rekurencyjna, MTHD (), nazywa się po raz pierwszy z metody Main (). Potem wciąż się wzywa, aż do spełnienia stanu.
Tego rodzaju liczenie można wykonać dla dowolnego zakresu. Aby to osiągnąć dla dowolnego zakresu, numer początkowy zakresu należy przypisać do NUM. Zamiast 5 dla kresu IF w metodzie, liczba tuż po zasięgu należy wpisać.
Dodanie szeregu nieograniczających liczb
Rozważ liczby:
10, 20, 30, 40, 50, 60
Suma pierwszych 4 liczb to 100. To znaczy: 10 + 20 = 30; 30 + 30 = 60; i 60 + 40 = 100. Metodą rekurencyjną może dodawać te liczby do rosnącej sumy, aż suma będzie mniejsza lub równa 100. Aby dodać pierwsze pięć liczb, metodą rekurencyjną może dodawać liczby do rosnącej sumę, aż suma będzie mniejsza lub równa 150.
Strategia polega na posiadaniu wszystkich tych liczb w tablicy w metodzie Main (). Następnie przekazaj tablicę jako argument do metody rekurencyjnej. Jeśli wymagane jest dodanie pierwszych czterech liczb, to gdy suma osiągnie 100, metoda rekurencyjna powinna przestać się wzywać. Jeśli wymagane jest dodanie pierwszych pięciu liczb, to gdy suma osiągnie 150, metoda rekurencyjna powinna przestać się wzywać. Jeśli wymagane jest dodanie pierwszych sześciu liczb, to gdy suma osiągnie 210, metoda rekurencyjna powinna przestać się wzywać.
Klasa dla tej metody rekurencyjnej może być:
klasa AclassTo jest do dodania pierwszych czterech liczb. Klasa ma dwa pola, które są sumą i ja. JEST ITERYKOWANE ZA TREAY, Począwszy od indeksu 0. Pierwsze stwierdzenie w metodzie rekurencyjnej, MTHD (), dodaje następną liczbę do sumy, która początkowo jest zerowa. Następne stwierdzenie zwiększa I o 1, dla następnego indeksu tablicy następnego połączenia. Oświadczenie to jest złożone if-hodowlanie. Warunkiem jest to, że suma nie powinna być powyżej 100. Tak więc dla każdego wywołania, że suma nie jest do 100 (lub więcej), metoda jest wywoływana ponownie, przekazując tę samą tablicę. W tej sytuacji warunek znajduje się na końcu implementacji metody.
Klasa główna () dla tego może być:
Klasa publiczna THEClassPierwsze stwierdzenie w metodzie main () tworzy tablicę, z jej elementami. Drugie stwierdzenie tworzy obiekt dla Aclass. Oświadczenie po, wywołuje metodę rekurencyjną, przekazując tablicę jako argument. To pierwsze wywołanie metody rekurencyjnej. Następnie metoda będzie się nazywać do momentu osiągnięcia wymaganej sumy. Ostatnie oświadczenie drukuje ostateczną sumę. Dane wyjściowe w tej sprawie wynosi 100.
Silnia
Czynnik 0, napisany jako 0!, jest 1. Skutki 5, 4, 3, 2, 1 są następujące:
Czynnik 5 = 5 x 4 x 3 x 2 x 1 x 0! = 120Program można napisać, aby po wysłaniu liczby do metody rekurencyjnej metoda rekurencyjna w końcu zwróci wynikowy czynnik. Zauważ, że czynnik można obliczyć do 1, zamiast 0, a wynik będzie nadal taki sam.
Klasa dla metody rekurencyjnej może być:
klasa AclassCały korpus metody jest złożonym podnośnikiem. Jeśli liczba, której czynnik jest potrzebny, wynosi 1, to, co zostanie zwrócone, wyniesie 1, ponieważ czynnik 1 to 1. Jeśli liczba jest większa niż 1, wówczas całe mnożenie będzie musiało zostać wykonane, zaczynając od samej liczby, spadając o 1 jednostkę.
Wynik jest uzyskiwany, gdy wykonano całe mnożenie. Wyrażenie zwrotne tutaj jest wywołaniem metody. Jego argument jest produktem liczby i metody rekurencyjnej.
Załóżmy, że liczba, której czynnik jest potrzebny, wynosi 5, wówczas argument pierwszego połączenia zwrotnego będzie:
5 x MTHD (4)To wyrażenie będzie zarezerwowane w pamięci, a następne połączenie będzie
5 x 4 x MTHD (3)To wyrażenie będzie zarezerwowane w pamięci, a następne połączenie będzie
5 x 4 x 3 x mthd (2)To wyrażenie będzie zarezerwowane w pamięci, a następne połączenie będzie
5 x 4 x 3 x 2 x mthd (1)Teraz MTHD (1) zwraca 1, ze względu na stwierdzenie części IF: „If (no == 1) zwróć 1;”, w wyniku czego powstaje,
5 x 4 x 3 x 2 x 1 = 120dla ostatecznej wartości zwracania.
Główną klasą, może być:
Klasa publiczna THEClassZ argumentem 5 dla pierwszego wywołania, w metodzie Main () ostateczna zwrócona wartość wynosi 120.
Wniosek
Rekurencja w Javie jest wywoływaniem metody metodą, od metody. To działanie powtarza się, aż do spełnienia stanu.