蓝桥杯python预选赛真题
时间: 2023-10-21 21:04:56 浏览: 49
引用:这题是关于统计数字1出现次数的问题。题目要求找出一个数,使得从1到这个数之间的所有整数中1出现的次数正好等于2021次。可以通过遍历数字1到一个稍大的数,统计每个数中1的个数,直到满足条件为止。具体代码如下:
count = 0
ans = ''
for i in range(10000):
tmp = str(i)
count = count + tmp.count('1')
if count == 2021:
print(i)
break
if count > 2021:
print(i-1)
break
引用:这题的难度级别是简单,主要考察了input函数、in运算、条件分支语句和print函数的使用。首先,input函数用于接受标准输入数据,并返回为字符串类型。其次,in运算可用于判断某个字符或者字符串是否存在于另一个字符串中。然后,条件分支语句if...else用于根据条件的真假执行不同的代码分支。最后,print函数用于打印输出结果。在解题过程中,需要掌握字符串操作和条件判断语句的使用。
引用:这题是关于直线斜率的计算问题。题目给出了一组点的坐标,需要计算通过这些点的直线斜率有多少种不同的情况。可以通过遍历所有的点对,计算它们之间的斜率,并将斜率和截距作为一个元组加入到一个集合中,最后返回集合的长度即可。具体代码如下:
X = []
Y = []
for i in range(20):
X.append(i)
for i in range(21):
Y.append(i)
ans = set()
def calculate_slope(x1, x2, y1, y2):
if x1 == x2:
return
tmp = ((y1-y2)/(x1-x2))
b = 0.5*(y1 + y2) - 0.5*tmp*(x1 + x2)
b = round(b, 4)
ans.add((tmp, b))
for i in range(20):
for j in range(21):
for x in range(20):
for y in range(21):
calculate_slope(i, x, j, y)
print(len(ans))