2024全国青少年电子信息智能创新大赛(决赛)python·模拟二卷解析
一、程序题
第一题:
描述
随机生成的 10 个在[1,100)范围内整数存入列表;输入一个待查找的整数 k,运用二分法在列表中查找 k,根据查找状态输出对应的结果。
输入:
[13, 25, 27, 41, 52, 66, 67, 69, 72, 75]
72
输出:
8
from random import randintdef binary_search(k):L, R = 0, len(ls) - 1while L <= R:mid = (L + R) // 2if ls[mid] == k:return midelif ls[mid] < k:L = mid + 1elif ls[mid] > k:R = mid - 1return Noneif __name__=='__main__':ls=[randint(1, 100) for i in range(10)]ls.sort()print(ls)k=int(input())if binary_search(k) is None:print("Not found")else:print("Found at index", binary_search(k))
第二题:
描述