- , .
fact(n-1), , .
int fact(int n) //return value is an integer, name of function is "fact", input argument is an integer named n
{
if (n <= 1) // if the input arg equals 1, return 1
return 1;
else
return n * fact(n - 1); //else, return n (input arg of this fact) times the return value of fact(n - 1)
}
, (3) 3 * 2 * 1 = 6.
int a = fact(3):
fact(3) //dive into this function:
{
if (n <= 1) //n is not 1
return 1;
else
return n * fact(n - 1); //now we call fact(2)
}
(2):
{
if (n <= 1) //n is not 1
return 1;
else
return n * fact(n - 1); //now we call fact(1)
}
(1):
{
if (n <= 1)
return 1;
else
return n * fact(n - 1);
}
fact(1) 1 , , fact(2).
, return 2*fact(1);, return 3*fact(2);, , 'a' 6.
, , , .