lza6p 2020-03-04 21:05 采纳率: 0%
浏览 215
已采纳

c++基础问题,由于初学者,不会,求大神帮忙?

在电影里我们常常可以看到这样的镜头,通过在犯罪分子身上安装的信号发射装置,警方可以持续不断的知道犯罪分子的位置。现在请你根据下面这个地图来追踪罪犯(地图中字母固定、字母位置固定、地图四周是墙):

图片说明

图中每个字符代表一个位置,现在你不断地接收到一些位置信号,那么请你编写程序计算从信号开始到信号结束目标至少移动了多少距离,在本地图中,只能上下左右四个方向移动,相邻两个单元格的移动距离为1。例如接受信号如:BJOI,那么移动顺序为B-J-O-I,最少移动距离7。

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-03-04 22:26
    关注

    问题解决的话,请点下采纳

    #include <iostream>
    using namespace std;
    
    int calc(char ch1, char ch2)
    {
        int n = 0;
        int x1 = (ch1 - 'A') % 4;
        int x2 = (ch2 - 'A') % 4;
        int y1 = (ch1 - 'A') / 4;
        int y2 = (ch2 - 'A') / 4;
        if (x1 > x2) n += x1 - x2; else n += x2 - x1;
        if (y1 > y2) n += y1 - y2; else n += y2 - y1;
        return n;
    }
    
    int main()
    {
        char route[20];
        cin >> route;
        int sum = 0;
        for (int i = 1; route[i] != 0; i++)
            sum += calc(route[i], route[i - 1]);
        cout << sum << endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗