题解:
这道题重点是行号和列号 !千万! 别搞反了,还有就是用dx 和 dy数组表示顺时针转动
1 dx = [-1, 0, 1, 0] 2 dy = [0, 1, 0, -1] 3 n, m = map(int, input().split()) # n行m列 4 x, y, d = 0, 0, 1 5 6 # 注意 x为 行标 y为 列标 7 8 # 先 执行前 然后 执行后 9 table = [[0 for i in range(m)] for i in range(n)] # 二维列表的初始化(处理为全为0)!!!!!! 10 11 # a, b用来记录当前位置 12 for i in range(1, m * n + 1): 13 table[x][y] = i 14 # 千万千万千万千万千万 注意 行列的关系# 15 a = x + dx[d] 16 b = y + dy[d] 17 if a < 0 or a >= n or b < 0 or b >= m or table[a][b] != 0: # 如果越界,则顺时针改变方向 18 d = (d + 1) % 4 # 顺时针改变方向 19 a = x + dx[d] 20 b = y + dy[d] 21 x = a 22 y = b 23 for i in range(n): 24 for j in range(m): 25 print(table[i][j], end=' ') # 这里末尾的空格可能要处理一下(学校的ljoj过不去) 26 print()
题解:
这个题主要让我学到了list(map())这种输入方法
其他都容易
1 letter = input() 2 list1 = [] 3 4 for i in range(12): 5 list2 = list(map(float, input().split())) # 记住这种输入方法 6 list1.append(list2) 7 8 if letter == 'S': 9 count = 0 10 Sum = 0 11 for i in range(0, 11): 12 for j in range(i + 1, 12): 13 Sum += list1[i][j] 14 count += 1 15 res = Sum/count 16 print('%.1f' % res) 17 18 elif letter == 'M': 19 count = 0 20 Sum = 0 21 for i in range(1, 12): 22 for j in range(0, i): 23 Sum += list1[i][j] 24 count += 1 25 res = Sum/count 26 print('%.1f' % res)
标签:count,12,Python,Sum,语法,range,dx,dy,XMU From: https://www.cnblogs.com/nijigasaki14/p/17527260.html