设计递归算法x(x(8))需要调用几次函数x(int n)
设计递归算法x(x(8))需要调用几次函数x(int n)。
class Program
{
static void Main(string[] args)
{
int i;
i = x(x(8));
}
static int x(int n)
{
if(n<=3)
return 1;
else
return x(n-2)+x(n-4)+1;
}
}
只计算x(x(8))的自然是9,而现在求的调用几次函数x(int n),把x(8)理解为一个二叉树。树的结点个数就是调用的次数。
8
/ \
6 4
/ \ / \
4 3 2 0
/ \
2 0
x(8)的结果为9
x(x(8))也就是x(9)的二叉树形式。
9
/ \
7 5
/ \ / \
5 3 3 1
/ \
3 1
各调用9次,1共调用18次。
参考:http://topic.csdn.net/u/20090731/19/7a4ba9a3-e9df-48b4-91bb-90f8ee550edf.html?88226
原创文章转载请注明出处:云飞扬IT的blog





