解题思路:
如何对周围元素进行遍历,寻找炸弹的个数是个关键的问题。因此,我们将每个字符存入一个二维数组中,方便我们进行遍历。
注意事项:
输出是个重点,我在输出上犯了好几次错误,注意输出的格式!
参考代码:
def count(i,j,arr):#定义一个函数,对周围的炸弹进行统计
num=0
if arr[i][j]=='*':
return -1
for x,y in [[i-1,j],[i+1,j],[i,j-1],[i,j+1],[i-1,j-1],[i-1,j+1],[i+1,j-1],[i+1,j+1]]:
if 0<=x<len(arr) and 0<=y<len(arr[0]) and arr[x][y]=='*':
num+=1
return num
circle=0
while True:
try:
a,b=map(int,input().strip().split())
circle+=1#记录这是第几次输出,注意输出格式
except:
break
ans=[[] for i in range(a)]#创建一个二维数组
z=''#一个空字符,记录每个位置周围的炸弹数
for i in range(a):#将字符存入数组的过程
c=input()
for j in c:
ans[i].append(j)
for i in range(a):#调用函数,进行统计
for j in range(b):
ret=count(i,j,ans)
if ret==-1:
z+='*'
continue
z+=str(ret)
print('Field #'+str(circle)+":")#输出结果
for i in range(a):
print(z[i*b:(i+1)*b])
print()
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:644 |
A+B for Input-Output Practice (IV) (C++代码)浏览:713 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:512 |
WU-整数平均值 (C++代码)浏览:1307 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:760 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:583 |
Cylinder (C语言描述,蓝桥杯)浏览:1279 |
愚蠢的摄影师 (C++代码)浏览:980 |
1118(求助_已解决)浏览:351 |
一元一次方程 (C语言代码)浏览:4245 |