试题A:门牌制作
代码
menpai = 0
for i in range(1,2021):
for j in str(i):
if j == "2":
menpai += 1
print(menpai)
结果
试题B:寻找2020
代码
matrix = [[2,2,0,0,0,0],[0,0,0,0,0,0],[0,0,2,2,0,2],[0,0,0,0,0,0],\
[0,0,0,0,2,2],[0,0,2,0,2,0]]
row = len(matrix)
col = len(matrix[0])
count = 0
for i in range(row):
for j in range(col):
if j+3 < col:
if str(matrix[i][j])+str(matrix[i][j+1])+str(matrix[i][j+2])\
+str(matrix[i][j+3]) == "2020":
count += 1
if i+3 < row:
if str(matrix[i][j])+str(matrix[i+1][j])+str(matrix[i+2][j])\
+str(matrix[i+3][j]) == "2020":
count += 1
if i+3 < row and j+3 < col:
if str(matrix[i][j])+str(matrix[i+1][j+1])+str(matrix[i+2][j+2])\
+str(matrix[i+3][j+3]) == "2020":
count += 1
print(count)
结果
试题C:跑步锻炼
代码
import datetime
num = 0
start_time = datetime.datetime(2000, 1, 1)
end_time = datetime.datetime(2020, 10, 1)
while start_time <= end_time:
if start_time.day == 1 or start_time.weekday() == 0:
num += 2
else:
num += 1
start_time += datetime.timedelta(days=1)
print(num)
结果
试题D:蛇形填数
代码
if __name__ == '__main__':
x, y, n = 0, 1, 2
f = 1
li = [[0] * 100 for i in range(100)]
li[0][0], li[0][1] = 1, 2
while f:
while y > 0:
if x == 19 and y == 19:
f = 0
break
y -= 1
x += 1
n += 1
li[x][y] = n
if f:
x += 1
n += 1
li[x][y] = n
while x > 0:
if x == 19 and y == 19:
f = 0
break
x -= 1
y += 1
n += 1
li[x][y] = n
if f:
y += 1
n += 1
li[x][y] = n
print(n)
for i in range(100):
for j in range(100):
print(li[i][j], end=" ")
print()
结果
试题E:排序
代码
def bubble_sort(alist):
count = 0
for i in range(len(alist)-1,0,-1):
for j in range(i):
if alist[j] > alist[j+1]:
alist[j],alist[j+1] = alist[j+1],alist[j]
count += 1
print(count)
a = list('jonmlkihgfedcba')
bubble_sort(a)
print(a)
结果
试题F:成绩统计
代码
if __name__ == '__main__':
n = int(input())
jige, youxiu = 0, 0
for i in range(n):
score = int(input())
if score >= 60:
jige += 1
if score >= 85:
youxiu += 1
print(str(round(jige / n * 100)) + "%")
print(str(round(youxiu / n * 100)) + "%")
试题G:单词分析
代码
charLst = [0] * 26
string = input()
for char in string:
charLst[ord(char)-97] += 1
max_value = max(charLst)
res_index = charLst.index(max_value)
res_chr = chr(res_index + 97)
print(res_chr)
print(max_value)
试题H:数字三角形
代码
if __name__ == '__main__':
n = int(input())
matrix = list()
for i in range(n):
matrix.append(list(map(int, input().split())))
dp = [[0] * n for i in range(n)]
dp[0][0] = matrix[0][0]
for i in range(1, n):
for j in range(i + 1):
if j == 0:
dp[i][j] = dp[i - 1][j] + matrix[i][j]
elif j == i:
dp[i][j] = dp[i - 1][j - 1] + matrix[i][j]
else:
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1]) + matrix[i][j]
print(dp[n - 1][n // 2] if n % 2 == 1 else max(dp[n - 1][n // 2 - 1], dp[n - 1][n // 2]))
试题I:平面切分
代码
def relation(n):
flag = True
for i in range(n):
for j in range(i+1, n):
if line[i][0] != line[j][0]:
flag = False
x = -(line[i][1] - line[j][1]) / (line[i][0] - line[j][0])
y = line[i][0] * x + line[i][1]
point.add((x, y))
break
if flag:
return n + 1
else:
if len(point) == 1:
return 2 * n
else:
return 2 * n + 1
n = int(input())
line = []
point = set()
for i in range(n):
a, b = list(map(int, input().split()))
line.append([a,b])
print(relation(n))
试题J:装饰珠
代码
A = [list(map(int, input().split())) for _ in range(6)]
m = int(input())
B = [list(map(int, input().split())) for _ in range(m)]
holes = [A[i][j] for i in range(6) for j in range(1, len(A[i]))]
holes.sort()
ball_grades = [B[i][0] for i in range(m)]
ball_values = [B[i][2:] for i in range(m)]
ball_nums = [0 for _ in range(m)]
dp = [[0 for _ in range(len(holes))] for _ in range(m)]
if holes[0] >= ball_grades[0]:
dp[0][0] = ball_values[0][0]
ball_nums[0] += 1
for j in range(1, len(holes)):
if holes[j] >= ball_grades[0]:
if ball_nums[0] >= len(ball_values[0]):
dp[0][j] = dp[0][j-1]
else:
if dp[0][j-1] > ball_values[0][ball_nums[0]]:
dp[0][j] = dp[0][j-1]
else:
dp[0][j] = ball_values[0][ball_nums[0]]
ball_nums[0] += 1
for i in range(1, m):
if holes[0] >= ball_grades[i]:
if ball_nums[i] >= len(ball_values[i]):
dp[i][0] = dp[i - 1][0]
else:
dp[i][0] = dp[i-1][0] + ball_values[i][ball_nums[i]]
ball_nums[i] += 1
else:
dp[i][0] = dp[i-1][0]
for i in range(1, m):
t2 = 0
s = 0
for j in range(1, len(holes)):
if holes[j] >= ball_grades[i]:
t2 += 1
if t2 == 1:
s = j - 1
maxlim = ball_values[i][-1] if t2 > len(ball_values[i]) else ball_values[i][t2-1]
dp[i][j] = max(dp[i-1][j], dp[i][s]+maxlim)
else:
dp[i][j]=dp[i-1][j]
print(dp[-1][-1])