*题意:
在给定的方格中,按照只能向右向上的格式,求有几种方式可以从左下方到右上方。
分析:
根据方格的规模,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 }