每日一题3.13.2

每日一题3.13.2

题目描述:一个n*m的格子,沿格子边缘从左上角走到右下角,只能向右和向下走,不能走回头路,求一共有多少条路径

解题思路: 将棋盘看成二维数组,起点为[0][0] 每次向右走则为[0][1],向下走为[1][0],排列组合算法,代码在编译器能实现,但没有通过case
代码实现:

#include<iostream>
using namespace std;

int processNew(int m, int n){
	int **Q = new int*[m + 1];
	for (int i = 0; i <= m; ++i){
		Q[i] = new int[n + 1]();
	}
	//初始化
	Q[0][0] = 0;
	for (int j = 1; j <= n; ++j)
		Q[0][j] = 1;
	for (int i = 1; i <= m; ++i)
		Q[i][0] = 1;
	//迭代计算
	for (int i = 1; i <= m; ++i){
		for (int j = 1; j <= n; ++j){
			Q[i][j] = Q[i - 1][j] + Q[i][j - 1];
		}
	}
	int res = Q[m][n];
	cout << res;
	delete[] Q;
	return res;
}
int main()
{
	int n, m;
	cin >> n >> m;
	processNew(n, m);
	system("pause");
	return 0;
}

参考答案
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lxb18821659801/article/details/88535076