递推算法
来源:互联网 发布:淘宝 情趣内衣 买家秀 编辑:程序博客网 时间:2024/06/06 03:24
好久没更过博客了,,今天简单翻了翻递推,,,发现不用心是根本看不懂的,目前我也只知道皮毛;
首先是一个形式(来自万能的校本教材),
void rec(形参列表){ if(test) return;//边界条件 rec(形参列表);//递归调用 语句序列2 //递归返还段(回溯)}
递推的示例很著名的有一个是斐波那契数列,数列第0个是0,第一个是1,以后的每一个是前两项的和;
首先上一发斐波那契数列的代码
#include<iostream>#include<algorithm>#include<string>using namespace std;int fib(int n){if(n<1)return -1;if(n==1||n==2)return 1;return fib(n-1)+fib(n-2);}int main(){int n;cin>>n;cout<<fib(n)<<endl;return 0;}嗯,此程序手打,边界条件就是n<1,小于1就没法继续往下判断了嘛,然后下面n==1和n==2也一样,但要注意,n=0的时候下标是1,所以就要减1,但n==1和n==2的时候,下表非零,所以返回1,
从这个代码,最直接的反应就是,递归真的很慢。。。超过50就超过1s了,更不要说后面
再上一发汉诺塔的代码
#include <iostream>#include <cstdio> using namespace std;void hannoi (int n, char from, char buffer, char to){ if (n == 1) { cout << "Move disk " << n << " from " << from << " to " << to << endl; } else { hannoi (n-1, from, to, buffer); cout << "Move disk " << n << " from " << from << " to " << to << endl; hannoi (n-1, buffer, from, to); }} int main(){ int n; cin >> n; hannoi (n, 'A', 'B', 'C'); return 0;}这个代码转自某大牛的空间,现在我也不是很懂http://www.cricode.com/304.html,先马克,以后再看
0 0
- 递推算法
- 递推算法
- 递推算法
- 递推算法
- 递推算法
- 递推算法讲解
- 算法--递推策略
- 递推算法
- 递推算法
- 递推算法(1)
- 递推算法
- 递推算法
- 递推算法
- 递推算法思想
- 递推算法
- 常见算法-递推
- 基本算法--递推
- 算法之递推算法(顺推)
- eclipse大小写转换
- DP问题
- 3.6 程序功能同上,只是现在有若干个职员的信息需要读入并计算,利用循环来输入 任意个职员的信息并计算工资
- 爬虫(三)--图片爬虫
- css中可以和不可以继承的属性
- 递推算法
- POJ 1011 Sticks(DFS + 剪枝)
- SASS基础教程
- HDU 2209 翻纸牌游戏
- Java7并发编程--1、线程管理
- DP 问题总结
- 进制转换 poj1220-NUMBER BASE CONVERSION
- 8086汇编语言 使用offset命令获取标号的IP地址
- BestCoder Round #84题解报告