程序员面试宝典--8.2递归(2)
2016-07-12 18:13
204 查看
#include<iostream> using namespace std; #define RECURSION 0 #define NO_RECURSION 1 //递归版本 #if RECURSION int f(int m,int n) { if(m==1) return n; if(n==1) return m; return f(m-1,n)*f(m,n-1); } #endif //非递归版本 #if NO_RECURSION int f(int m,int n) { int a[100][100]; for(int i=0;i<m;++i) a[i][0]=i+1; for(int j=0;j<n;++j) a[0][j]=j+1; for(int i=1;i<m;++i) for(int j=1;j<n;++j) a[i][j]=a[i-1][j]+a[i][j-1]; return a[m-1][n-1]; } #endif int main() { cout<<f(5,5); return 0; }
相关文章推荐
- 程序员面试宝典--8.2递归(1)
- HR教你面试时怎么谈出高工资
- 程序员生存定律--成长路上常见的坑
- Java程序员应该知道的10个调试技巧
- 大数据面试宝典
- Java程序员修炼之道 之 Logging(3/3) - 怎么分析Log
- Java程序员修炼之道 之 Logging(2/3) - 怎么写Log
- Java程序员修炼之道 之 Logging(1/3) - Logback 配置
- 面试题35:第一个只出现一次的字符
- 面试题34:丑数
- 剑指offer面试题12:打印1到最大的n位数(1)
- Java程序员的Scala的入门教程
- 前端面试大全
- 写在正式开始步入程序员行列的第一篇
- 面试题--三个线程循环打印ABC 10次:另类解决方法
- 普通码农和CTO之间的差距
- 普通码农和CTO之间的差距
- 剑指offer-4-面试26:复杂链表的复制
- “乒乓外交”和人脉扩展
- 职场六忌