#c++#该怎么做?

过河卒(初级版)
描述
棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。棋盘用坐标表示,A点(0, 0)、B点(n, m)(n, m为不超过10的整数)。 请计算出卒从A点能够到达B点的路径条数。
输入
n m (B点的坐标) 1<=n、m<=10
输出
路径的总条数
样例输入
2 1
样例输出
3
提示
因为卒只能往下或者往右走,每次只能走一格。所以到达左边的边界和上边的边界的路径方案都只有一种。
基于标数法可得递推公式为:a[i][j]=a[i-1][j]+a[i][j-1]。

用递归吧

#include <stdio.h>

long long way(int x, int y)
{
    long long result;
    if (y == 0 && x > 0)
        result = way(x - 1, 0);
    if (x == 0 && y > 0)
        result = way(0, y - 1);
    if (x > 0 && y > 0)
        result = way(x - 1, y) + way(x, y - 1);
    if (x == 0 && y == 0)
        result = 1;
    return result;
}

int main()
{
    int n, m;
    scanf("%d%d", &n, &m);
    long long count;
    count = way(n, m);
    printf("%lld", count);
    return 0;
}

这个直接用 n+m 就不行了吗