poj1942 Paths on a Grid

*题意:
在给定的方格中,按照只能向右向上的格式,求有几种方式可以从左下方到右上方。
分析:
根据方格的规模,m×n,肯定向右m次,向上n次,所以问题转化为从m+n步中选取m步向右(剩余的n步     自然向上)。
在求组合是尽量简化运算。
*代码:
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 int main()
 6 {
 7     long long int a,b,m,n,ans,count;
 8     while(cin>>a>>b)
 9     {
10         if(a==0&&b==0)
11         break;
12         m=a;
13         n=a+b;
14         ans=1;
15         if(m>n-m)m=n-m;
16         count=m;
17         while(count--)
18         {
19             ans*=n--;
20             while(ans%m==0&&m>1)
21             ans/=m--;
22         }
23         cout<<ans<<endl;
24     }
25     return 0;
26 }

 

posted @ 2013-10-17 21:32  Neptunes  阅读(201)  评论(0编辑  收藏  举报