1. 程式人生 > >POJ1942-Paths on a Grid

POJ1942-Paths on a Grid

題意:

給你兩個數n,m,代表n*m的矩陣,讓你求,從左下角走到右上角的方法數;

走法是隻能往上走或者往右走。

 

這個題就是求組合數

從左下角走到右上角一共走n+m步,必須得走n步或者m步,所以從n+m中選擇n步或者m步。

所以直接求Cnn+m  或者Cmn+m 都是答案

 

程式碼:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <set>
 4 using namespace std;
 5 typedef long long ll; 
6 int main() 7 { 8 ll n,m; 9 while(~scanf("%lld%lld",&n,&m)) 10 { 11 ll ans=1; 12 if(n==0&&m==0) 13 break; 14 ll t=m+n; 15 n=max(n,m); 16 for(ll i=n+1,j=1;i<=t;i++,j++) 17 ans=ans*i/j; 18 printf("%lld\n
",ans); 19 } 20 21 return 0; 22 }