Sisukord:

Massiivi rekursiivne kokkuvõtmine Java -s: 9 sammu
Massiivi rekursiivne kokkuvõtmine Java -s: 9 sammu

Video: Massiivi rekursiivne kokkuvõtmine Java -s: 9 sammu

Video: Massiivi rekursiivne kokkuvõtmine Java -s: 9 sammu
Video: Section 3 2024, November
Anonim
Massiivi rekursiivne kokkuvõtmine Java -s
Massiivi rekursiivne kokkuvõtmine Java -s

Rekursioon on väga kasulik ja aeganõudev protseduur, mis suudab väga väikese koodiga kiiresti probleemi lahendada. Rekursioon hõlmab teie loodud meetodit, mis lühendab algprobleemi.

Selle näite puhul võtame kokku 10 täisarvu massiivi, kuid selle suurus võib olla mis tahes pikkusega.

Tarvikud

Te peaksite teadma Java põhisüntaksit ja omama oma IDE -d või tekstiredaktorit, et selle ülesande jaoks kood kirjutada.

Samm: seadistage oma põhimeetod

Seadistage oma põhimeetod
Seadistage oma põhimeetod

Alustuseks seadistage oma peamine meetod äsja loodud klassis. Panin oma klassile nimeks RecursiveSum. Siin loote täisarvude massiivi ja helistate oma rekursiivsele meetodile.

Samm: looge oma rekursiivse meetodi päis

Looge oma rekursiivse meetodi päis
Looge oma rekursiivse meetodi päis

Väljaspool oma põhimeetodit looge oma rekursiivse meetodi jaoks meetodi päis.

Meetod on staatiline, kuna see ei nõua selle kasutamiseks objekti.

Tagastustüüp on int, kuna kasutatav massiiv on täisarvudega täis. Seda saab aga muuta mis tahes numbritüübiks, mida massiiv sisaldab.

Olen oma meetodile andnud nime recursiveSum, mis võtab kaks parameetrit; täisarvude massiivi ja indeksi, mille summale lisame. Nimetasin need parameetrid vastavalt numbriteks ja indeksiteks.

Näete praegu vigu ja see on hea. Need fikseeritakse hiljem.

3. samm: looge oma Kicker/alusümbris

Looge oma Kicker/alusümbris
Looge oma Kicker/alusümbris

Rekursiivne meetod vajab kickerit/alusjuhtumit. See on tingimus, mis takistab teie meetodil end lõpmatult nimetama. Seda põhijuhtumit võib pidada kõige lihtsamaks juhtumiks, millega kokku puutume. Sel juhul on põhijuhtum siis, kui oleme oma massiivi lõpus. Kui praegune indeks võrdub massiivi pikkusega (miinus 1, sest massiivid hakkavad loendama 0 -st mitte 1 -st), oleme lõpus ja tagastame selle elemendi selle indeksi juurde.

4. samm: rekursiivne samm

Rekursiivne samm
Rekursiivne samm

Kui meil on baasjuhtum olemas, on järgmine samm meie rekursiivne samm. Siin juhtub maagia. Oleme käsitlenud juhtumit, kui meie indeks võrdub meie massiivi viimase elemendiga. Mis siis, kui me pole oma massiivi viimasel elemendil? Mis oleks, kui saaksime lihtsalt öelda, et see lisab meie praeguse elemendi ja järgmise? Lõpuks jõuame oma massiivi lõppu ja meie põhijuhtum mõjutab.

Selle saavutamiseks tagastame lihtsalt oma praeguse indeksi ja lisame massiivi ülejäänud osa.

Samm: lühendage probleemi

Lühendage probleemi
Lühendage probleemi

Kuidas me lihtsalt "lisame ülejäänud"? Meil on juba meetod, mis lisab teatud elemendi; meie meetodit recursiveSum ()! Võime seda uuesti nimetada, kuid muutke, millist indeksit me kokku võtame.

Me edastame samas massiivis, mida töötleme, kuid edastame järgmise indeksi oma praegusest indeksist. Teeme seda, lisades ühe lihtsalt meie praegusele indeksile, nagu näidatud.

6. samm: looge täisarvude massiiv

Looge täisarvude massiiv
Looge täisarvude massiiv

Nüüd, kui meie rekursiivne summeerimismeetod on lõpule jõudnud, saame luua oma massiivi, mida töötleme. See massiiv on meie peamises meetodiplokis.

Massiivi suurust saate muuta nii kaua kui soovite. Olen loonud mõne erineva suuruse ja väärtusega massiivi, et näidata, et see töötab mitte ainult ühe suurusega.

Samm: helistage meetodile oma massiividega

Helistage meetodile oma massiividega
Helistage meetodile oma massiividega

Nüüd saate helistada oma rekursiivsele meetodile ja edastada need massiivid sellele. Nüüd saate oma programmi käivitada.

Samm: printige tulemused

Printige tulemused
Printige tulemused
Printige tulemused
Printige tulemused

Midagi ei juhtunud. Miks? Rekursiivne summa tagastab täisarvu, kuid me pole selle täisarvuga midagi teinud. See tegi oma töö, kuid me ei näe tulemust. Tulemuse nägemiseks prindime selle lihtsalt välja. Pärast selle käivitamist peaksite nägema iga oma massiivi tulemusi.

9. samm: õnnitlused

Olete lõpetanud rekursiivse funktsiooni. Muutke julgelt oma massiivide suurust. Kui proovite seda, märkate, et tühja massiivi korral jookseb see kokku. Me ei ole sellega arvestanud, kuid see on suurepärane võimalus rekursiivse meetodi täiustamiseks.

Soovitan: