>> ZVUČNIK 1: U tom posljednjem verziji sigma, provodi sam ono što bih nazvao
iterativno rješenje, pri čemu sam se naprijed petlje brojati do sve
broj između 1 i m, nakon toga povratka sumu.
>> No, ispostavilo se da možemo koristiti još jedan Tehnika za provedbu iste
funkcija, tehnika poznat kao rekurzije.
Rekurzivna funkcija, da se tako izrazim, je jednostavno onaj koji sebe naziva.
Sada, samo po sebi, da je bi mogao biti problem.
Ako funkcija jednostavno sebe naziva koji sebe naziva koja sebe naziva,
Taj proces bi mogao Bot ikada završiti.
Ali tako dugo dok su tzv osnovni scenarij, stanje koje osigurava
da u nekim situacijama ne zovu sami, da proces inače
beskonačna petlje treba prestati.
>> Idemo sada reimplement Sigma kako slijedi.
Ako je n manji od ili jednak 0, sam jednostavno, a ponekad proizvoljno,
će vratiti 0..
Inače ono što ću učiniti je zapravo izračunati Sigma za pozitivnu int
da sam predao.
>> Sada, ono što je sigma od m?
Pa, Sigma M je, naravno, suma od 1 do preko m..
No, ako mislimo o tome drugi put, to je jednostavno zbroj m plus m.
minus 1 plus m minus 2 i tako dalje, pa sve do jednog.
Dakle, u tom smislu, čini se da Ja jednostavno mogao vratiti M PLUS.
>> I onda moram m minus 1 plus 2 m minus.
Ali imam funkciju koja može dati mene upravo to odgovor, naime
sigma m bila minus jedan.
>> Sada, ja osobno zvati na ovaj način ne izgledati kao najbolja ideja.
Jer ako sigma poziva sigma koja poziva sigma koja poziva sigma, što
mislim da bi se taj proces možda ne bi nikada završiti.
No, to je razlog zašto smo imali tzv bazu Slučaj na vrhu ove funkcije.
Ako je uvjet koji provjerava da li je m manji ili jednak 0 Neću
sebe nazivaju.
Ja sam, umjesto da se vrate idući 0, što opet će biti dodan
prethodni brojevi koje sam zbrajanjem prema gore, čime se zaustavlja ovo
inače beskonačan proces.
>> Idemo sada vidjeti ako ovaj novi Provedba radi.
Idemo spasiti, sastaviti i pokrenuti ovaj program.
Provjerite Sigma 1 dot slash Sigma 1.
I neka je njegovo opremanje iste brojeve kao i prije.
2, koji se nadamo bi trebao dati mi tri.
Idemo dati ga s 3, koji trebao nadamo daj mi 6.
I neka je konačno dostavi mu 50, što je uistinu daje mi 1275.