knowledge(4) 的输出结果是多少?def knowledge(n):
if n == 1:
return 1
else:
return 2 * knowledge(n - 1)
print(knowledge(4))pattern = [
[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0],
[1, 1, 1, 1, 1],
[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0]
]
print(pattern[2][4])total = 0
def produce(n):
global total
total += n
return total
print(produce(10))
print(produce(20))
print(total)result 中存储的是什么?paper_cut = {"张三", "李四", "王五", "赵六"}
embroidery = {"李四", "赵六", "孙七", "周八"}
result = paper_cut & embroidery
print(result)题目描述:
中国传统剪纸艺术讲究对称之美,艺人常常将纸张对折后剪裁,展开即得左右对称的精美图案。现在用一个 n x n 的二维列表来表示一幅剪纸图案,其中 1 表示有剪纸的部分,0 表示空白。请编写程序判断该图案是否关于垂直中轴线左右对称。
假设 n 为奇数(即存在一条明确的垂直中轴线,位于正中间一列)。
输入格式:
- 第一行:一个奇数 n(1 <= n <= 99),表示图案的行数和列数
- 接下来 n 行:每行 n 个整数(0或1),空格分隔
输出格式:
- 如果图案关于垂直中轴线左右对称,输出 左右对称
- 否则输出 不对称
示例输入1:
5
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
0 1 0 1 0
1 0 1 0 1
示例输出1:
左右对称
示例输入2:
3
1 0 0
0 1 0
0 0 1
示例输出2:
不对称
示例输入:
示例输出:
题目描述:
某非遗文化节计划举办多场手工体验活动(如剪纸教学、泥塑体验、蜡染展示等)。每场活动有固定的开始时间和结束时间(用24小时制的 HH:MM 格式表示)。由于场地有限,同一时间只能进行一场活动。请编写程序,使用贪心算法计算:
1. 最多能安排多少场活动
2. 按顺序输出被选中的活动编号
输入格式:
- 第一行:一个整数 n,表示活动的总数量
- 接下来 n 行:每行两个字符串,分别表示活动的开始时间和结束时间(格式为 HH:MM),活动按输入顺序编号为 1, 2, ..., n
输出格式:
- 第一行:一个整数,表示最多可安排的活动数量
- 第二行:被选中活动的编号,空格分隔
示例输入:
08:00 09:00
08:30 09:30
09:00 10:00
10:00 11:00
09:30 10:30
示例输出:
1 3 4
样例解释:
5场活动中,最优安排方案是选择活动1(08:00-09:00)、活动3(09:00-10:00)和活动4(10:00-11:00),共3场活动互不冲突。
算法提示:
采用经典的"区间调度"贪心策略:
1. 将所有活动按结束时间从早到晚排序
2. 从排序后的列表中,依次选取开始时间不早于上一个已选活动结束时间的活动
题目描述:
刺绣中有一种具有自相似特征的图案——分形图案。这类图案在不同的尺度上呈现出相似的结构。请编写程序,使用递归的方式生成一个分形图案。
图案定义规则如下:
- level = 1(基础图案):一个 3x3 的网格,中心位置为空格,其余8个位置为字符 "*"
- level = n(n > 1):将 level = n-1 的图案作为基础单元,按照 3x3 的方式排列,中心单元为全空白的区域(大小等同于一个基础单元),其余8个单元各自放置一个 level = n-1 的图案
输入格式:
输出格式:
示例输入1:
1
示例输出1:
***
* *
***
示例输入2:
2
示例输出2:
*****
* *
*****
* *
* * * *
* *
*****
* *
*****
示例输入:
示例输出:
题目描述:
风筝是中国传统手工艺品的杰出代表,放飞风筝是一项深受人们喜爱的户外活动。在一个 n 行 m 列的场地中,有若干障碍物(如树木、建筑物等),风筝手需要找到一条从起点(左上角位置 (0, 0))到终点(右下角位置 (n-1, m-1))的路径。风筝每次可以向上、下、左、右四个方向之一移动一格,但不能移出场地边界,也不能穿过障碍物。
请编写程序,使用广度优先搜索(BFS)判断是否存在可行路径,若存在则输出最短路径经过的格子数(含起点和终点)。
输入格式:
- 第一行:两个整数 n 和 m(1 <= n, m <= 50),表示场地的行数和列数
- 接下来 n 行:每行 m 个整数(0 或 1),空格分隔。0 表示空地(可通行),1 表示障碍物(不可通行)
输出格式:
- 如果存在路径:
- 第一行输出 YES
- 第二行输出最短路径经过的格子数(整数)
- 如果不存在路径:
- 输出 NO
示例输入1:
3 3
0 0 0
0 1 0
0 0 0
示例输出1:
YES
5
样例1解释:
最短路径为:(0,0) -> (0,1) -> (0,2) -> (1,2) -> (2,2),共经过5个格子。
示例输入2:
3 3
0 1 0
1 1 1
0 1 0
示例输出2:
NO
样例2解释:
起点(0,0)被障碍物包围(右、下均为障碍物),无法到达终点(2,2)。
算法提示:
使用广度优先搜索(BFS)逐层扩展访问可通行的格子。用一个队列存储待访问位置及其步数,用一个 visited 二维布尔列表标记已访问的格子,避免重复访问。当队列弹出终点坐标时,返回当前步数即为最短路径长度。
示例输入:
示例输出: