递归相信学C++的朋友们都学过,但是朋友们有没有想过这样一个问题:递归一般要求,要有终止条件,那如果没有终止条件,会怎么样?
实际上,这个的本质就是无限递归。
我举个例子给大家说明什么是无限递归:
从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么故事呢?从前有个山,山里有个庙,庙里有个老和尚给小和尚讲故事……。
那无限递归又会发生什么呢?
#include<iostream>
using namespace std;
int a(int b)
{
return b+a(b+1);
}
int main()
{
cout << a(1);
return 0;
}
如果真这么写,那可错误大了。
我们知道,递归会占用很多栈内存,特别是复杂的递归程序。这样一来,这程序不爆栈才怪!还会超时,永远返回不了。不信你自己试验一下