# 枚举1-n中能被3整除的数
n =int(input())for i inrange(1, n+1):if i %3==0:print(i)
应用场景:统计符合条件的数量、寻找特定解(如 “找出数组中最大的偶数”)。
2. 模拟算法:按部就班的 “流程还原师”
核心逻辑:严格按照题目描述的步骤,一步步还原过程,重点是细节不出错。
代码模板:
python
# 模拟机器人移动:上右下左移动k步
x, y =0,0
directions =[(0,1),(1,0),(0,-1),(-1,0)]# 上右下左
k =int(input())for _ inrange(k):
d =int(input())# 输入方向编号0-3
dx, dy = directions[d]
x += dx
y += dy
print(x, y)
应用场景:模拟物体移动、流程操作(如 “农场作物生长周期”“排队购票流程”)。
3. 递归算法:化繁为简的 “分拆高手”
核心逻辑:将复杂问题拆分为与原问题相似的小问题,递归调用函数解决,必须设置终止条件。
代码模板:
python
# 递归计算n的阶乘deffactorial(n):if n ==1:# 终止条件return1return n * factorial(n-1)# 递归调用print(factorial(5))
应用场景:阶乘计算、简单路径搜索、排列组合问题(铜级仅考察基础递归,无需深度优化)。
4. 前缀和算法:高效计算的 “快捷工具”
核心逻辑:提前预处理数组前缀和,快速计算任意区间和,避免重复计算,提升效率。
代码模板:
python
# 前缀和计算数组a中[l, r]区间的和
a =[1,2,3,4,5]
prefix =[0]*(len(a)+1)for i inrange(len(a)):
prefix[i+1]= prefix[i]+ a[i]
l, r =1,3# 1-based索引print(prefix[r]- prefix[l-1])# 结果为2+3+4=9