只能向下和向右走,其实就是最短路径,m+n 条路里面选m条是向下的,那么其余的就向右走,所以排列组合计算,可以使用深搜或者广搜,到终点则路径加一也可以

#include<stdio.h>
int n,m;
int fun(int n,int m){
    int num=m+n;
    int sum1=1,sum2=1;
    for(int i=num;i>=num-m+1;i--){
        sum1*=i;
    } 
    for(int i=m;i>=1;i--){
        sum2*=i;
    }
    return sum1/sum2;
} 
int main(){
    while(scanf("%d %d",&n,&m)!=EOF){
        printf("%d\n",fun(n,m));
    }
}