【发布时间】:2014-11-25 00:48:23
【问题描述】:
我想计算并打印从矩阵左下角到参数中给定目标的所有可能路径。您总是从坐标 (1,1) 开始,并且必须向上或向右移动。但是,目的地是通过参数传递的。例如:CountPath(3, 4)
我已经正确地找到了路径的数量,但发现我必须从我的目标开始并移动到开始,因为输入是目标位置。
int CountPath ( int row, int column )
{
if ( row == 1 || column == 1 )
return 1;
else
return CountPath(row - 1, column) + CountPath(row, column - 1);
}
输入/输出示例: 输入:3 4 输出:路径数为 10
void main()
{
int m, n;
cin >> m >> n;
cout << "The # of paths is " << CountPath( m, n ) << endl;
}
我需要澄清一下我是否正确地执行了此操作,或者是否有办法实际从 (1,1) 开始并向上和向右移动。打印应显示所有可能的路径,例如:
(1,1)-->(2,1)-->(3,1)-->(3,2)-->(3,3)-->(3,4) (1,1)-->(2,1)-->(2,2)-->(3,2)-->(3,3)-->(3,4) ...
那么,根据这些规则,我可以从 (1,1) 开始并向上和向右移动吗?如果没有,那我怎么按上面的顺序打印呢?
【问题讨论】:
标签: c++ recursion matrix path-finding