标签:
1、用递归来完成递推
方法:
1)把关注点放在要求解的目标上即 i=n时的结果
2)进而找到第n次做与第n-1次做之间的关系;
3)确定第1次的返回结果
如切饼示例
其中n是切的刀数,q(n)是饼的块数
代码实现
int get_cake_number(int cutnum) { if (cutnum == 0) { return 1; } else { return (cutnum + get_cake_number(cutnum - 1)); } }
2、用递归模拟连续发生的动作
方法:
1)搞清楚 连续发生的动作是什么
2)搞清楚 不同次动作之间的关系
3)搞清楚 边界条件是什么
示例:输出整数的二进制数
代码实现
void convert(int x) { if ((x / 2) != 0) { convert(x/2); cout << x%2; } else { cout << x % 2; } }
标签:
原文地址:http://www.cnblogs.com/aqing1987/p/4331832.html