题解 | #走方格的方案数#
走方格的方案数
http://www.nowcoder.com/practice/e2a22f0305eb4f2f9846e7d644dba09b
一个简单的组合题,因为只能从左往右,从上到下,那么也就是说,一共只能走m+n步,也就是说,我们只需要在m+n步中挑出往下/往右走的部分,就可以得到方案数了,其结果就为C(n,m+n)或者C(m,m+n),可以用一个z来选出m,n中的最小值减少运算次数,C(z,m+n) = (m+n)(m+n-1)......(m+n-z+1)/z!,然后就能轻松得到答案。
include
include
using namespace std;
int main() {
int m,n;
while(cin>>m>>n){
int fenzi =1;
int fenmu = 1;
int z = min(m, n);
for(int i=z;i>0;i--){
fenmu=i;
fenzi=(m+n-i+1);
}
cout<<fenzi/fenmu<<endl;
}
}