Paths on a Grid

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 }
View Code

 

posted on 2013-09-28 09:47  straw_berry  阅读(167)  评论(0编辑  收藏  举报