题目:4*6棋盘,棋子从左下角走到右上角(只能向北或者向东走)有多少种走法
把棋盘看做二维坐标,
设f(m,n)代表从坐标(0,0)到坐标(m,n)的移动方法,则
f(m,n)=f(m-1,n)+f(m,n-1)
初始为f(0,0)=0,f(0,1)=1,f(1,0)=1
由此进行递归运算,递归算法主要是要弄清楚退出条件和返回值,这个已经很清楚了,退出条件就是m,n至少有个为0,否则就要继续递归运算。
class PayChess {
int process(int m, int n) {
if (m == 0 && n == 0)
return 0;
if (m==0 || n==0)
return 1;
return process(m, n - 1) + process(m - 1, n);
};
void main() {
int x = process(4,6);
cout<<x<<endl;
}
}