#include <iostream> using namespace std; #define MAX 200 int dp[MAX][MAX]; int f(int M,int N) { if(M<N) return dp[0][N]=0; if(N==0) return dp[M][0]=1; else if(N<=M) return dp[M][N]=f(M-1,N) + f(M,N-1); } int main() { int m,n; while (cin>>m>>n) { f(m,n); cout<<dp[m][n]<<endl; } return 0; }
#include <iostream> using namespace std; #define MAX 200 int dp[MAX][MAX]; int f(int a,int b) { if(a<b) return dp[0][b]=0; if(b==0) return dp[a][0]=1; else if(b<=a) return dp[a][b]=f(a-1,b) + f(a,b-1); } int main() { int m,n; while (cin>>m>>n) { f(m,n); cout<<dp[m][n]<<endl; } return 0; }
#include <iostream> using namespace std; #define MAX 200 int dp[MAX][MAX]; int f(int x,int y) { if(x<y) return dp[0][y]=0; if(y==0) return dp[x][0]=1; else if(y<=x) return dp[x][y]=f(x-1,y) + f(x,y-1); } int main() { int m,n; while (cin>>m>>n) { f(m,n); cout<<dp[m][n]<<endl; } return 0; }