试卷总分:100分
选择题 25题 50分
判断题 10题 20分
编程题 3题 30分
def f(n): if n == 1: return n else: return n + f(n//2) print(f(10))
def f(n): if n == 1 or n == 0: return n else: return f(n-1) + f(n-2) print(f(3))
def f(lst): if len(lst) == 0: return 0 return lst[0] + f(lst[1:]) a = [1,2,3,4] print(f(a))
def nx(s): if len(s) == 1: return s return nx(s[1:]) + s[0] print(nx('abcda'))
def swap(a, b): a, b = b, a x, y = 1, 2 swap(x, y) print(x, y)
def demo(n): s = 1 for i in range(1, n): s *= i return s
def demo(x): return x*2 print(demo(demo(2)))
n = 5 def fun(): global n n = n * 2 print(n) fun() print(n)
def f(a:int,b:str)->str: c = a + b print(c) return f f('3','45')
def student_info(grade, name): print(f"{grade}年级的{name}同学")
def calc(x, y, z): ans = (x + y) * z print(f"计算结果={ans}")
def mul(x, y=1): return x y print(mul(2), mul(1, 2))
def fun(*args): t = 0 for x in args: t += x return t print(fun(1) + fun(2, 3))
>>> s = lambda a, b: a * b >>> s(4, 4)
f = lambda x, y : x if x > y else y result = f(10, 20) print(result)
def interest(total, years, rate=0.03): for i in range(years): total *= (_______) return total print(interest(1000, 5))
fun = lambda x: x 2
# 方法一 total = 0 for i in range(1, n + 1): total += i # 方法二 total = n * (n + 1) // 2
def checkpwd(pwd): c = [0] * 4 flag = False if len(pwd) >= 8: ________①________ for i in pwd: if ________②________: c[0] = 1 elif i >= 'A' and i <= 'Z': c[1] = 1 elif i >= 'a' and i <= 'z': c[2] = 1 elif i in '!@#%^&*()': ________③________ if ________④________ and flag: return True else: return False pwd = input('请输入密码') if checkpwd(pwd): print('密码符合安全要求') else: print('密码不符合安全要求')
智能家居系统 在智能家居系统中,我们可以通过中央控制系统来管理各个房间的智能灯。为了简化问题,假设每个房间有一个智能灯,其状态用 1 表示开,0 表示关。我们的任务是计算家里所有开着的灯的数量。我们将采用分治算法的思想来解决这个问题。 请补全以下代码,使用分治算法实现统计列表中开着的灯(值为 1)数量的功能。
def count_lights_on(rooms): # 如果列表为空,直接返回0 if not rooms: return 0 # 如果列表只有一个元素,直接判断是否为开着的灯 if len(rooms) == 1: return rooms[0] # 将列表分为两部分 mid = len(rooms) // 2 # ① left_rooms = rooms[:mid] right_rooms = rooms[mid:] # 使用分治递归统计每部分开着的灯的数量 count_left = count_lights_on(left_rooms) # ② count_right = count_lights_on(right_rooms) # 返回总共开着的灯的数量 return count_left + count_right # ③ # 示例测试 rooms = [1, 0, 1, 0, 1, 0, 1] # 1代表灯开着,0代表灯关着 print(count_lights_on(rooms)) # 输出应为4
def flower(n): if n == 1: return 1 # ① 第一行种1株 else: leftover = (n - 1) % 3 # ② 计算余数(也可能是 n % 3,取决于规律) if leftover == 0: current = flower(n-1) + 3 # ③ 整除时加3 elif leftover == 1: current = flower(n-1) + 2 # ④ 余1时加2 else: current = flower(n-1) - 1 return current hang = int(input("请输入行数:")) print(f"第{hang}行种植了{flower(hang)}株花卉")