Mündəricat:

Təkrarlı olaraq Java -da bir Array toplamaq: 9 addım
Təkrarlı olaraq Java -da bir Array toplamaq: 9 addım

Video: Təkrarlı olaraq Java -da bir Array toplamaq: 9 addım

Video: Təkrarlı olaraq Java -da bir Array toplamaq: 9 addım
Video: Dərs 4.2.3 Kombinatorikanın əsas elementləri. Təkrarlı permutasiyalar. 2024, Noyabr
Anonim
Təkrarlı olaraq Java -da bir Array toplamaq
Təkrarlı olaraq Java -da bir Array toplamaq

Rekursiya, çox az kodla bir problemi tez bir zamanda həll edə biləcək çox faydalı və vaxt baxımından təsirli bir prosedurdur. Rekursiya, özünüzü orijinal problemi qısaldan adlandırdığınız metodu əhatə edir.

Bu nümunə üçün, 10 ədəddən ibarət bir sıra toplayacağıq, lakin ölçüsü istənilən uzunluqda ola bilər.

Təchizat

Əsas java sintaksisini bilməlisiniz və bu iş üçün kodunuzu yazmaq üçün IDE və ya mətn redaktorunuz olmalıdır.

Addım 1: Əsas metodunuzu qurun

Əsas metodunuzu qurun
Əsas metodunuzu qurun

Başlamaq üçün əsas metodunuzu yeni yaradılmış bir sinifdə qurun. Sinifimə RecursiveSum adını verdim. Burada tam ədədlər silsiləsi yaradacaq və öz rekursiv metodunuzu çağıracaqsınız.

Addım 2: Rekursiv Metod Başlığınızı yaradın

Rekursiv Metod Başlığınızı yaradın
Rekursiv Metod Başlığınızı yaradın

Əsas metodunuzdan kənarda, rekursiv metodunuz üçün metod başlığı yaradın.

Metod statikdir, çünki ondan istifadə etmək üçün bir obyekt tələb olunmur.

Dönüş növü intdir, çünki istifadə edəcəyimiz sıra tam ədədlərlə dolacaq. Bununla birlikdə, bu sıra daxil olan hər hansı bir nömrə növünə dəyişdirilə bilər.

Metodumu iki parametr alacaq recursiveSum adlandırdım; cəminə əlavə edəcəyimiz tam ədədlər indeksi və indeksi. Mən bu parametrləri müvafiq olaraq nömrələrə və indekslərə çağırdım.

Səhvləri dərhal görəcəksiniz və bu yaxşıdır. Daha sonra düzəldiləcəklər.

Addım 3: Kicker/əsas çantanızı yaradın

Kicker/əsas çantanızı yaradın
Kicker/əsas çantanızı yaradın

Rekursiv bir üsula bir zərbə/əsas vəziyyət lazımdır. Metodunuzun özünü sonsuz adlandırmasını dayandıracaq şərt budur. Bu əsas vəziyyət, qarşılaşacağımız ən sadə vəziyyət olaraq düşünülə bilər. Bu vəziyyətdə, əsas hal dizimizin sonunda olduğumuz zaman olacaq. Mövcud indeks dizinin uzunluğuna bərabərdirsə (eksi 1, çünki seriallar 0 -dan deyil, 0 -dan saymağa başlayır), biz sondayıq və sadəcə həmin elementi həmin indeksə qaytarırıq.

Addım 4: Təkrarlanan addım

Rekursiv addım
Rekursiv addım

Əsas vəziyyətimizə sahib olduqdan sonra, növbəti addım rekursiv addımımızdır. Möcüzənin baş verdiyi yer budur. İndeksimiz serialımızdakı son elementə bərabər olduğu zaman işi həll etdik. Bəs serialımızın son elementində olmasaq nə olar? Sadəcə, indiki elementimizi üstəgəl əlavə etməyi söyləsək nə olar? Nəhayət, dizimizin sonuna çatacağıq və əsas vəziyyətimiz təsir edəcək.

Bunu etmək üçün indiki indeksimizi qaytarırıq və dizinin "qalan hissəsini əlavə edirik".

Addım 5: Problemi qısaldın

Problemi qısaldın
Problemi qısaldın

Necə "qalanları əlavə edə bilərik"? Artıq müəyyən bir element əlavə edəcək bir metodumuz var; recursiveSum () metodumuz! Yenidən zəng edə bilərik, ancaq hansı indeksi ümumiləşdiririk.

Emal etdiyimiz eyni massivə keçirik, ancaq indiki indeksimizdən növbəti indeksi keçirik. Bunu indiki indeksimizə göstərildiyi kimi əlavə etməklə edirik.

Addım 6: Sayılar Arrayını yaradın

Sayılar Arrayını yaradın
Sayılar Arrayını yaradın

İndi rekursiv cəmləmə metodumuz tamamlandıqdan sonra emal edəcəyimiz serialımızı yarada bilərik. Bu sıra əsas metod blokumuzda olacaq.

İstədiyiniz qədər serialın ölçüsünü düzəldə bilərsiniz. Tək bir ölçüdə işləmədiyini göstərmək üçün fərqli ölçü və dəyərlərə malik bir neçə fərqli serial yaratdım.

Addım 7: Arraylarınızla Metodu Çağırın

Arraylarınızla Metodu Çağırın
Arraylarınızla Metodu Çağırın

İndi rekursiv metodunuza zəng edib bu massivləri ona ötürə bilərsiniz. İndi proqramınızı işə sala bilərsiniz.

Addım 8: Nəticələri çap edin

Nəticələri çap edin
Nəticələri çap edin
Nəticələri çap edin
Nəticələri çap edin

Heç nə olmadı. Niyə? Rekursiv cəm bir tam ədəd qaytarır, amma bu tam ədədlə heç nə etməmişik. İşini gördü, amma nəticəsini görə bilmirik. Nəticəni görmək üçün sadəcə belə çap edirik. Bunu işlədikdən sonra hər bir serialınızın nəticələrini görməlisiniz.

Addım 9: Təbrik edirik

Rekursiv funksiyanı tamamladınız. Dizilerinizin ölçüsünü dəyişdirməkdən çekinmeyin. Bunu sınasanız, boş bir massiviniz olanda çökdüyünü görəcəksiniz. Hesablamadıq, ancaq bu, rekursiv metodunuzu inkişaf etdirməyin əla bir yoludur.

Tövsiyə: