要走到右下角必须经过最后一个方格的左下角或右上角,所以可以把所有走法分为走到最后一个方格的左下角和走到最后一个方格的右上角,即f(n,m)=f(n,m-1)+f(n-1,m)

#include<stdio.h>
int main(void)
{
    int n,m;
    while(~scanf("%d %d",&n,&m))
    {
        printf("%d\n",f(n,m));
    }
    return 0;
}
int f(int n,int m)
{
    if(n==0||m==0)
        return 1;
    else
        return f(n-1,m)+f(n,m-1);
    //要走到右下角必须经过最后一个方格的左下角或右上角,
    //所以可以把所有走法分为走到最后一个方格的左下角和走到最后一个方格的右上角,即f(n,m)=f(n,m-1)+f(n-1,m)
}