题目描述
给定一个 n×m 的方格阵,沿着方格的边线走,从左上角 (0,0) 开始,每次只能往右或者往下走一个单位距离,问走到右下角 (n,m) 一共有多少种不同的走法。
输入格式
共一行,包含两个整数 n 和 m。
输出格式
共一行,包含一个整数,表示走法数量。
数据范围
1≤n,m≤10
样例
输入样例:
2 3
输出样例:
10
解题思路
这题观察可以看出一共要走m+n次,只能往右方和下方,并且一共走了n次下方、m次右方,由排列组合C(m+n,n)或者C(m+n,m)就可以得出结果。
C++ 代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int C(int a,int b)
{
int len=1;
for(int i=1,j=a;i<=b;i++,j--)
{
len=len*j/i;
}
return len;
}
int main()
{
int a,b;
cin>>a>>b;
cout<<C(a+b,a);
return 0;
}
大佬帮我看看为什么我错了啊,有时对,有时错,但我知道方法是对的