例如计算阶乘:
int factorial(int n)
{
assert(n>=0);
if(n==0)
return 1;
else
return n*facotorial(n-1);}
我看了很久也不明白他的意思。
他调用本身,哪个是他本身?if(n==0) return 1; 这个?
facotorial(n-1)的值是什么?还要往上推算?怎么可以单单从if(n==0) return 1;得来的?
或者有人拿一道,你觉得更易懂的例子指点下吗
例如计算阶乘:
int factorial(int n)
{
assert(n>=0);
if(n==0)
return 1;
else
return n*facotorial(n-1);}
我看了很久也不明白他的意思。
他调用本身,哪个是他本身?if(n==0) return 1; 这个?
facotorial(n-1)的值是什么?还要往上推算?怎么可以单单从if(n==0) return 1;得来的?
或者有人拿一道,你觉得更易懂的例子指点下吗
int Fibonacci(int n);
int main()
{
int n, answer;
cout << "Enter number: ";
cin >> n;
cout << "\n\n";
answer = Fibonacci(n);
cout << answer << " is the " << n << "th Fibonacci number\n";
return 0;
}
int Fibonacci (int n)
{
cout << "Processing Fibonacci(" << n << ")... ";
if (n < 3 )
{
cout << "Return 1!\n";
return (1);
}
else
{
cout << "Call Fibonacci(" << n-2 << ") and Fibonacci(" << n-1 << ").\n";
return( Fibonacci(n-2) + Fibonacci(n-1));
}
}
递归体现在8086上就是不停的CALL-PUSH-RET-CALL-PUSH-RET...POP-POP...
最简单的形式是这样的..
函数(参数){
if(参数==结束条件){
返回结束值;
}
计算;
return 函数(参数);
}
------------
哦...cclearner越来越高手咯... 加油哦..