题目描述
有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。
输入描述:
输入包括一行,逗号隔开的两个正整数x和y,取值范围[1,10]。
输出描述:
输出包括一行,为走法的数目。
#include<iostream>
#include<memory.h>
using namespace std;
int arry[12][12];
void Init(int x,int y){
memset(arry,0,sizeof(arry));
for(int i = 1; i <= x;i++)
for(int j=1; j<= y;j++){
arry[i][j]=1;
}
arry[x][y] = 2;
}
int go(int x,int y){
//如果 x y 等于2 代表到达终点 返回一个1
if(arry[x][y] == 2) return 1;
if(arry[x][y] == 0) return 0;
return (go(x+1,y) + go(x,y+1));
}
int main(){
int m,n;
while(cin>>m>>n){
Init(m+1,n+1);
int temp = 0;
temp = temp + go(1,1);
cout<<temp;
}
return 0;
}