题目描述
有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。
输入描述:
输入包括一行,空格隔开的两个正整数x和y,取值范围[1,10]。
输出描述:
输出一行,表示走法的数目
示例
输入
3 2
输出
10
#include <iostream>
using namespace std;
int get(int x, int y)
{
if (x == 1) return y + 1;
if (y == 1) return x + 1;
return get(x - 1, y) + get(x, y - 1);
}
void main()
{
int x, y;
cin >> x >> y;
cout << get(x, y) << endl;
}
思路:很巧妙的数学方法,利用递归求解。