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.