题解 | #走方格的方案数#

走方格的方案数

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;

}

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务