题目链接:
http://poj.org/problem?id=1942
题意:
给定一个矩阵,只能上和右,问从左下到右上一共有多少种走法。
题解:
向上走了n步,向右走了m步,总共一定有 n+m 步,从中选择n处放左走,(或选m处向右走),即 n C n+m 。
样例太水,暴力枚举阶乘就能过,而且也不用考虑边乘边除的精度问题,233
代码:
#include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
unsigned long long int n,m;
int main()
{
while(cin>>n>>m)
{
if (n==0&&m==0) return 0;
if (n>m) swap(n,m);
unsigned long long int s=1,i,j;
for (i=m+1,j=1;i<=m+n;i++,j++)
s=s*i/j;
cout<<s<<endl;
}
}