题解 | #走方格的方案数#

走方格的方案数

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")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务