【问题描述】
小明在爷爷的私人收藏馆里找到一台老式电脑。居然没有图形界面,只能用控制台编程。
经过小明的一阵摸索,神奇地设计出了控制台上的贪食蛇游戏。
如下图,是游戏时画面截图。
其中,H表示蛇头,T表示蛇尾。#表示蛇的身体,@表示身体交叉重叠的地方。
你能说出现在的贪吃蛇长度是多少吗?
其实,只要数出#的数目算1,数出@的数目,算2,再加上头尾各算1就计算好了。
人工数一下?太累眼睛了,聪明的你为什么不让计算机帮忙呢?
本题的要求就是: 请填写上图中贪食蛇的长度是多少?
+-------------------------------------------------+
| |
| H###### #### |
| # # # |
| # # # |
| # #### # # |
| # # # # # |
| ######@### # # |
| # #### # # |
| # # # # # |
| ####@#######@### # # |
| # # # # # |
| T ##### # # # ## |
| # # ### ### ## |
| ################ # # #### |
| # # # # |
| ############## #######@########## |
| # ### |
| ########################### |
+-------------------------------------------------+
【答案提交】
注意:需要提交的是一个整数,不要添加任何多余内容(比如说明或注释)
疑惑:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char a[20][52];
int main()
{
for (int i = 0; i < 20; i ++) cin >> a[i];
int ans = 0;
for (int i = 0; i < 20; i ++)
for (int j = 0 ; j < 52; j ++)
{
if(a[i][j] == '#') ans ++;
else if(a[i][j] == '@') ans += 2;
}
cout << ans + 2 << endl;
return 0;
}
我也不知道为什么开到116才能算出正确答案:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char a[116][52];
int main()
{
for (int i = 0; i < 116; i ++) cin >> a[i];
int ans = 0;
for (int i = 0; i < 116; i ++)
for (int j = 0 ; j < 52; j ++)
{
if(a[i][j] == '#') ans ++;
else if(a[i][j] == '@') ans += 2;
}
cout << ans + 2 << endl;
return 0;
}
/*
+-------------------------------------------------+
| |
| H###### #### | 11
| # # # | 3
| # # # | 3
| # #### # # | 7
| # # # # # | 5
| ######@### # # | 13
| # #### # # | 7
| # # # # # | 5
| ####@#######@### # # | 20
| # # # # # | 5
| T ##### # # # ## | 11
| # # ### ### ## | 10
| ################ # # #### | 22
| # # # # | 4
| ############## #######@########## | 33
| # ### | 4
| ########################### | 27
+-------------------------------------------------+
*/
答案:190
求大佬帮帮我 o(╥﹏╥)o