题解 | #走方格的方案数#
走方格的方案数
https://www.nowcoder.com/practice/e2a22f0305eb4f2f9846e7d644dba09b
#include <iostream>
using namespace std;
//统计走m*n方格的方案数
int scheme(const int m, const int n) {
//m=0说明只需要从左走到右,只有一种方案
if (m == 0)
return 1;
//n=0说明只需要从上走到下,只有一种方案
if (n == 0)
return 1;
//m和n均不为0时,可以选择向右或向下
//向右时,还需要走m*(n-1)的方格,共有scheme(m,n-1)种方案
//向右时,还需要走(m-1)*n的方格,共有scheme(m-1,n)种方案
return scheme(m - 1, n) + scheme(m, n - 1);
}
int main() {
int m, n;
while (cin >> m >> n) { // 注意 while 处理多个 case
cout << scheme(m, n) << endl;
}
}
// 64 位输出请用 printf("%lld")