题目描述
有一张m × n m×nm×n 个小方格的地图,一个机器人位于地图的左上角(如图标记为Start 的地方),它每步只能向右或者向下移动一格,如果走到右下角的终点(如图标记为Finish 的地方),有多少种不同的方法?
输入格式
两个整数m mm(m < = 100 m<=100m<=100)和 n nn(n < = 100 n<=100n<=100),代表地图的行数和列数。
输出格式
一个整数,表示行走的方法数。
输入样例
3 2
输出样例
3
解题思路
这道题可以用递归的方式来解决,看代码应该就可以看得出吧
#include <iostream>
using namespace std;
int a;//长
int b;//宽
int fun(int x,int y)
{
if((a-x==1&&y==b)||(b-y==1&&x==a))
{
return 1;
}
if(x+1<=a&&y+1<=b)
{
return fun(x+1,y)+fun(x,y+1);
}
if(x+1<=a&&y<=b)
{
return fun(x+1,y);
}
if(y+1<=b)
{
return fun(x,y+1);
}
}
int main()
{
cin>>a>>b;
int x=1;//当前横坐标
int y=1;//当前纵坐标
cout<<fun(x,y);
}
然后就解决了这道题了
本文介绍了一个经典的机器人路径问题,即机器人从地图的左上角出发,仅能向右或向下移动,到达右下角终点的不同路径数量。通过递归算法实现了路径数量的计算。
&spm=1001.2101.3001.5002&articleId=122019111&d=1&t=3&u=fb996266e834472c8622f9483ccc9184)
6687

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



