題目:4*6棋盤,棋子從左下角走到右上角(只能向北或者向東走)有多少種走法
把棋盤看做二維坐標嘲更,
設(shè)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
由此進行遞歸運算,遞歸算法主要是要弄清楚退出條件和返回值赋朦,這個已經(jīng)很清楚了篓冲,退出條件就是m,n至少有個為0,否則就要繼續(xù)遞歸運算北发。
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;
}
}