#include <iostream> using namespace std; int dfs(int n,int m){ if(n==1){ return m+1; } else if(m==1){ return n+1; } else{ return dfs(n,m-1)+dfs(n-1,m); } } int main() { int a, b; while (cin >> a >> b) { // 注意 while 处理多个 case cout<<dfs(a,b); } } // 64 位输出请用 printf("%lld")
总步数为m+n,可以向右走m步,向下走n步,抽象为每一个小方格,然后递归计算即可。