地图上有m个城市,序号依次为1,2,3....m,刚开始你在1,若每次只能从当前城市去往当前序号加1或者加3的城市,要到达m城市(m>3),有多少种走法
要想到达m,则前一个应该是m - 1或者m -3;因此可以利用递归的思想,具体实现的源码如下
#include <iostream>
using namespace std;
int step(int m)
{
if (m == 1)
return 1;
else if (m < 0)
return 0;
return step(m-1) + step(m-3);
}
int main()
{
for (int i = 0; i < 10; i++)
cout << i << ": " << step(i) << endl;
return 0;
}
本文介绍了一种使用递归算法解决从起始城市到目标城市的路径计数问题。通过限定每一步只能前进1或3个城市,实现了路径的计算。文章提供了一个简单的C++程序示例,展示了如何通过递归函数计算所有可能的路径数量。
8084

被折叠的 条评论
为什么被折叠?



