LQ0128 贪吃蛇长度文本处理

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0128 贪吃蛇长度文本处理相关的知识,希望对你有一定的参考价值。

题目来源:蓝桥杯2017初赛 C++ C组B题

题目描述
小明在爷爷的私人收藏馆里找到一台老式电脑。居然没有图形界面,只能用控制台编程。
经过小明的一阵摸索,神奇地设计出了控制台上的贪食蛇游戏。
如下图,是游戏时画面截图。

+-------------------------------------------------+
|                                                 |
|    H######                      ####            |
|          #                      #  #            |
|          #                      #  #            |
|          #     ####             #  #            |
|          #     #  #             #  #            |
|          ######@###             #  #            |
|                #       ####     #  #            |
|                #       #  #     #  #            |
|            ####@#######@###     #  #            |
|            #   #       #        #  #            |
| T          #####       #        #  #   ##       |
| #                      #      ###  ### ##       |
| ################       #      #      ####       |
|                #       #      #         #       |
|   ##############       #######@##########       |
|   #                         ###                 |
|   ###########################                   |
+-------------------------------------------------+

其中,H表示蛇头,T表示蛇尾。#表示蛇的身体,@表示身体交叉重叠的地方。
你能说出现在的贪吃蛇长度是多少吗?
其实,只要数出#的数目算1,数出@的数目,算2,再加上头尾各算1就计算好了
人工数一下?太累眼睛了,聪明的你为什么不让计算机帮忙呢?
本题的要求就是: 请填写上图中贪食蛇的长度是多少?

输出格式
输出一个整数表示答案

问题分析
这是一个填空题,需要做一个离线程序,用条件编译来解决。
准备输入的数据如上图。

AC的C语言程序如下:

/* LQ0128 贪吃蛇长度 */

#include <stdio.h>

/* #define DEBUG */

int main()

#ifdef DEBUG
    int ans = 0;
    char c;
    while (~scanf("%c", &c))
        if (c == '#' || c == 'T' || c == 'H')
            ans++;
        else if (c == '@')
            ans += 2;

    printf("%d\\n", ans);
#else
    printf("190\\n");
#endif
    return 0;

以上是关于LQ0128 贪吃蛇长度文本处理的主要内容,如果未能解决你的问题,请参考以下文章

结对-贪吃蛇游戏-结对项目总结

自制贪吃蛇——方向控制,初始长度增加

自回旋贪吃蛇算法

结队-贪吃蛇游戏-项目进度

结对-贪吃蛇游戏-测试过程

题解 贪吃蛇