最简单的递推不解释!!!呵呵!!
#include<iostream>
#include<algorithm>using namespace std;int n,f[20][20];int CrossRoad(int L,int W){ if(f[L][W]!=-1) return f[L][W]; int result; if(L==0||W==0) result=1; else result=CrossRoad(L-1,W)+CrossRoad(L,W-1); f[L][W]=result; return f[L][W]; }int main()
{ while(cin>>n&&n) { memset(f,-1,sizeof(f)); int count=CrossRoad(n,n); cout<<count<<endl; } return 0;}