小明在爷爷的私人收藏馆里找到一台老式电脑。居然没有图形界面,只能用控制台编程。 如上图,是游戏时画面截图。 其中,H表示蛇头,T表示蛇尾。#表示蛇的身体,@表示身体交叉重叠的地方。 你能说出现在的贪吃蛇长度是多少吗? 其实,只要数出#的数目算1,数出@的数目,算2,再加上头尾各算1就计算好了。 人工数一下?太累眼睛了,聪明的你为什么不让计算机帮忙呢? 本题的要求就是: 请填写上图中贪食蛇的长度是多少? 注意:需要提交的是一个整数,不要添加任何多余内容(比如说明或注释)
+————————————————-+ | | | H###### #### | | # # # | | # # # | | # #### # # | | # # # # # | | ######@### # # | | # #### # # | | # # # # # | | ####@#######@### # # | | # # # # # | | T ##### # # # ## | | # # ### ### ## | | ################ # # #### | | # # # # | | ############## #######@########## | | # ### | | ########################### | +————————————————-+
这道题比较简单。我们可以考虑把输入的东西用字符串存储,每一行存储为一个串,然后用循环遍历string,把它存储为chararray即可。
之后再用判断语句来实现题目要求。代码如下:
import java.util.Scanner; public class 贪吃蛇长度 { public static void main(String[] args) { String s[] = { "H###### #### |", "| # # # |", "| # # # |", "| # #### # # |", "| # # # # # |", "| ######@### # # |", "| # #### # # |", "| # # # # # |", "| ####@#######@### # # |", "| # # # # # |", "| T ##### # # # ## |", "| # # ### ### ## |", "| ################ # # #### |", "| # # # # ", "| ############## #######@########## |", "| # ### |", "| ###########################" }; char[][] arr = new char[60][30]; for (int i = 0; i <s.length; i++) { arr[i] = s[i].toCharArray(); } int ans = 0; for (int i = 0; i < 60; i++) { for (int j = 0; j < arr[i].length; j++) { if(arr[i][j] == '#'||arr[i][j] == 'T'||arr[i][j] == 'H') { ans++; }else if (arr[i][j] == '@') { ans+=2; } } } System.out.println(ans); } }