>> SPEAKER 1: Tässä uusimmassa versiossa on sigma, olen toteuttanut kutsuisin
iteratiivinen ratkaisu, jossa käytin eteenpäin silmukan laskea kaikki ylös
numeroita välillä 1 ja m, sen jälkeen palaavat summa.
>> Mutta näyttää siltä, ​​voimme käyttää toista tekniikka toteuttaa saman
toiminto, tekniikka kutsutaan rekursio.
Rekursiivinen funktio, niin sanotusti, on vain yksi, joka kutsuu itseään.
Nyt, ja sinänsä, että saattaa olla ongelma.
Jos toiminto yksinkertaisesti kutsuu itseään joka kutsuu itseään joka kutsuu itseään,
että prosessi voi bot koskaan loppua.
Mutta niin kauan kuin meillä kuuluu ns base tapauksessa ehto, joka takaa
että joissakin tilanteissa emme kutsu itsellemme, että prosessi muuten
ääretön looping olisi lopetettava.
>> Katsotaanpa nyt reimplement sigma seuraavasti.
Jos n on pienempi kuin tai yhtä suuri kuin 0, olen yksinkertaisesti, ja hieman mielivaltaisesti,
palaavansa 0.
Muuten mitä aion tehdä, on todella laskea sigma positiivisen int
että olen kulkenut.
>> Nyt, mitä on sigma m?
No, sigma ja m on, tietenkin, summa 1 läpi metriä.
Mutta jos ajattelemme sitä muulla tavalla, se on yksinkertaisesti summa m + m
miinus 1 plus m miinus 2 ja niin edelleen, kaikki alas 1.
Joten siinä mielessä, näyttää siltä, ​​että Voisin yksinkertaisesti palata m +.
>> Ja sitten minä tarvitsen m miinus 1 plus m miinus 2.
Mutta minulla on toiminto, joka voi antaa Itselleni tuo vastaus, eli
sigma m miinus 1.
>> Nyt, kutsuen itseäni tällä tavalla ei tuntua paras idea.
Koska jos sigma kehottaa sigma jossa kehotetaan sigma jossa vaaditaan sigma, voit
Luulisi, että tämä prosessi ehkä koskaan pääty.
Mutta siksi meillä oli ns base tapauksessa yläosassa tätä toimintoa.
Jos ehto, joka tarkistaa, jos m on pienempi tai yhtä suuri kuin 0 En aio
kutsua itseäni.
Olen sen sijaan aio palata 0, joka vuorostaan ​​aiotaan lisätä
edellinen numeroita, että olen ollut yhteenlaskua up, näin pysäytetään tämä
muuten ääretön prosessi.
>> Katsotaanpa nyt nähdä, jos tämä uusi täytäntöönpanoa toimii.
Säästetään, koota ja suorita tämä ohjelma.
Tee sigma 1 dot slash sigma 1.
Ja katsotaanpa antaa sille samat numerot kuin ennen.
2, joka toivottavasti antaa minulle 3.
Katsotaanpa toimitettava sille 3, joka toivottavasti antaa minulle 6.
Ja nyt vihdoin antaa sille 50, joka todellakin antaa minulle 1275.