Could someone explain how this code works?
Mostra commenti meno recenti
So, we were given this as an example of recursion. It's a program that computes the factorial of a given scalar.
function f = factorial(x)
temp = 0;
if (x == 1)
temp = 1;
else
temp = x*factorial(x-1);
end
I get that x is inputted and if it's value is 0, then it returns 1 right off the bat. However, if x is not equal to 1 then the operation temp = x * factorial(x - 1); is carried out. So, x - 1 is then passed to factorial(), this is where I'm lost. What happens now? How does the value of temp not end up as 0, seeing as it's reset to that at the beginning of the function? Also, how does the code know when to stop and return the result?
f = temp;
Risposta accettata
Più risposte (1)
Youssef Khmou
il 10 Ott 2013
David, The variable temp is local (inside the function), as long as the iterative variable x didnt arrive at 1 the process continues, "temp" is set only inside function , N=4 :
inside func insde func
N=4 -> (Temp=0,..,Temp=3)-->N=3 (Temp=0,Temp=2) .....N=1
Categorie
Scopri di più su Factorizations in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!