1、注意:由于线程栈有固定的大小,如果进行递归的层次太深,有可能会出现溢出。
常见面试题:
有一组数1、1、2、3、5、8、13、21、34…,要求用递归算法算出这组数的第30个数字是多少?
public int GetNumber(int i)
{
if (i <= 0)
{
return 0;
}
else if (i >= 0 && i <= 2) //判断数值大于等于0 并且小于等于2
{
return 1; // 返回数值1
}
else //若不满足以上条件则执行下面的递归
{
return GetNumber(i - 1) + GetNumber(i - 2);
}
}