http://poj.org/problem?id=1942
题意:一个n*m的格子,从左下角走到右上角有多少种走法,规定只能向上或向右走;
思路:解法挺水的,高中学组合数的时候老师给讲过;求C[m+n][n]就可以;
但是这里n,m是32位以内的数,要用double,输出的时候只输出整数部分;
1 #include<iostream> 2 #include<iomanip> 3 using namespace std; 4 5 double n,m,ans; 6 int main() 7 { 8 cout<<fixed<<setprecision(0); 9 while(cin>>n>>m) 10 { 11 if(n == 0 && m == 0) 12 break; 13 if(n > m) swap(n,m); 14 15 ans = 1; 16 for(unsigned i = 1; i <= n; i++) 17 { 18 ans = ans*(m+i)/i; 19 } 20 cout<<ans<<endl; 21 } 22 return 0; 23 }