poj 1942 Paths on a Grid

#include<iostream>        //组合数
using namespace std;
int main()
{
long long m,n,i,j,res;
while(scanf("%lld%lld",&n,&m)&&(n||m))
{
if(n>m)
swap(n,m);
res
=1,j=2;
for(i=m+1;i<=m+n;++i)
{
res
*=i;
while(j<=n&&res%j==0)
{
res
/=j;
j
++;
}
}
printf(
"%lld\n",res);
}
return 0;
}
//给定一个n*m的矩形,求解从左下角走到右上角有多少种方法可行.
//从左下角走到右上角,一定要向上走m次,向右走n次,那么很容易推出公式:方法数=C(m+n,n)
//组合数一般较大,因此采用边乘边除的方法求解

  

posted on 2011-07-22 16:31  sysu_mjc  阅读(103)  评论(0编辑  收藏  举报

导航