首页 > c#, 数据结构与算法 > 设计递归算法x(x(8))需要调用几次函数x(int n)

设计递归算法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

本文链接: http://www.ajaxcn.net/archives/238

分类: c#, 数据结构与算法 标签:
一键分享到:新浪微博分享  分享到网易微博    转贴到开心网  推荐到豆瓣  分享到QQ空间    RSS订阅
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.