>> GARSIAKALBIS 1: Šiuo paskutiniu versija Sigma, aš parašiau, ką aš vadinčiau
kartotinis sprendimas, kuriuo aš pirmyn kilpa suskaičiuoti visus
numeriai nuo 1 iki m, o vėliau grąžinimo sumą.
>> Tačiau paaiškėja, mes galime naudoti kitą būdas įgyvendinti tą pačią
funkcija, technika žinomas kaip rekursija.
Grįžtamojo funkcija, taip sakant, yra tiesiog vienas, kad vadina save.
Dabar ir pati, kad gali būti problema.
Jei funkcija tiesiog save vadina, kurie save vadina, kurie vadina save,
kad procesas gali botas nors baigtųsi.
Bet kol mes apima vadinamąjį bazinį scenarijų, sąlyga, kuri užtikrina
kad kai kuriais atvejais mes neturime skambinti save, kad kitaip procesas
begalinis apsisukimo turėtų būti nutraukta.
>> Leiskite dabar reimplement Sigma taip.
Jei n yra mažesnis arba lygus 0, aš tiesiog, ir šiek tiek savavališkai,
ketina grįžti 0.
Kita vertus, ką aš ruošiuosi daryti iš tikrųjų apskaičiuoti Sigma teigiamą int
kad aš buvo perduoti.
>> Dabar, kas yra sigma iš m?
Na, sigma M, žinoma, 1 susumuoti per m.
Bet jei mes galvojame apie tai į kitą pusę, tai tiesiog m plius suma m
minus 1 plius minus m 2 ir tt, visą kelią žemyn iki 1.
Taigi šia prasme, atrodo, kad Galėčiau tiesiog grįžti m plius.
>> Ir tada man reikia m minuso 1 plius minus 2 m.
Bet aš turiu funkcija, kuri gali suteikti man tiksliai atsakyti taip, būtent
sigma M minus 1.
>> Dabar skambina save tokiu būdu nėra atrodo geriausia idėja.
Nes jei sigma ragina sigma, kurioje raginama sigma kurioje raginama sigma, jūs
manyčiau, kad šis procesas gali ne bet kada nutraukti.
Bet tai kodėl mes turėjome vadinamąjį bazę atveju šio funkciją viršuje.
Jei sąlyga, kad tikrina, jei m yra mažesnė arba lygi 0 Nesiruošiu
vadintis.
Aš vietoj ketina grįžti 0, o savo ruožtu bus įtraukta į
ankstesni numeriai, kad aš sumuoja iki, ir taip sustabdyti šį
kitaip begalinis procesas.
>> Leiskite dabar pamatyti, jei ši nauja įgyvendinimo darbai.
Išsaugokime, kaupti ir paleisti šią programą.
Padaryti sigma 1 taškas velniop sigma 1.
Ir tegul pateikia jai Tie patys skaičiai kaip ir anksčiau.
2, kuris turėtų tikiuosi man 3.
Leiskite pateikti su 3, o turėtų tikiuosi man 6.
Ir tegul pagaliau suteikia jai 50, kuris iš tiesų suteikia man 1275.