如何快速写出递归函数

三步走

1,写出迭代公式

2,写出终止条件

3,把1,2,翻译成代码


例如

求1 + 2 + 3 + 。。。+ n 的和

迭代公式为

1 到(n - 1)的和 + n

终止条件为

n 等于 1的时候终止


代码如下

int sum(int n)

{

    if (n == 1)

        return 1;

    

    return sum(n - 1) + n;

}



// 把数据写入xml

typedef multimap<string, void*> MAP_NODE;

void XMLWrite::xmlDataWrite(MAP_NODE* map, xmlNodePtr parent)

{

    MAP_NODE::iterator it = map->begin();

    for (; it != map->end(); ++it)

    {

        if (isNode(it))

        {

            xmlNodePtr node = xmlNewNode(NULL, BAD_CAST it->first.c_str());

            xmlAddChild(parent, node);

            

            if ((MAP_NODE*)it->second)

            {

                xmlDataWrite((MAP_NODE*)it->second, node);

            }

        }

        else

        {

            xmlNewProp(parent, BAD_CAST it->first.c_str(), BAD_CAST "123456");

        }

    }

}


你可能感兴趣的:(数据结构/算法)