蓝桥杯Python案例
以下是一个用 Python 解决蓝桥杯经典题型(如数字处理、算法模拟)的案例,附带思路和代码注释:
案例:计算1到n的平方和(基础题)
题目描述:输入整数 n ,计算 1² + 2² + 3² + ... + n² 的值。
输入:一个整数 n ( 1 ≤ n ≤ 1000 )。
输出:平方和结果。
思路分析
直接遍历累加每个数的平方,注意数据范围不会溢出,用基础循环即可解决。
代码实现
n = int(input()) # 读取输入
result = 0 # 初始化结果
for i in range(1, n + 1): # 遍历1到n
result += i ** 2 # 累加平方
print(result) # 输出结果
示例输入: 5
输出: 55 (计算过程: 1+4+9+16+25=55 )
案例:斐波那契数列(递推算法)
题目描述:求斐波那契数列第 n 项的值( n ≤ 30 ),数列定义为:
f(1)=1 , f(2)=1 , f(n)=f(n-1)+f(n-2) ( n≥3 )。
思路分析
- 递归法:直观但效率低(重复计算)。
- 递推法:从前往后计算,避免重复,效率更高。
代码实现(递推法)
n = int(input())
if n == 1 or n == 2:
print(1)
else:
a, b = 1, 1 # 前两项
for _ in range(n - 2):
c = a + b # 计算下一项
a, b = b, c # 指针后移
print(b)
示例输入: 6
输出: 8 (数列:1, 1, 2, 3, 5, 8)
案例:字符串逆序(字符串操作)
题目描述:输入一个字符串,逆序输出(如输入 abc ,输出 cba )。
思路分析
利用 Python 字符串切片特性 [::-1] 直接逆序,简洁高效。
代码实现
s = input().strip() # 读取输入并去除首尾空格
print(s[::-1]) # 逆序切片输出
示例输入: hello
输出: olleh
案例:质数判断(数学算法)
题目描述:判断一个数 n 是否为质数(质数定义:大于1且只能被1和自身整除的数)。
思路分析
- 遍历 2 到 √n 的数,若存在能整除 n 的数,则不是质数。
- 优化:只需判断到 sqrt(n) ,减少循环次数。
代码实现
import math
n = int(input())
if n <= 1:
print("不是质数")
else:
is_prime = True
for i in range(2, int(math.sqrt(n)) + 1): # 遍历到√n
if n % i == 0:
is_prime = False
break
print("是质数" if is_prime else "不是质数")
示例输入: 17
输出: 是质数
关键提示
1. 读题仔细:注意输入输出格式(如是否需要换行、空格)。
2. 边界测试:测试极端情况(如 n=0 、 n=1 、空字符串)。
3. 效率优化:简单题可用暴力法,复杂题需考虑算法时间复杂度(如用递推代替递归)。
通过练习类似题目,熟悉 Python 语法和算法逻辑,逐步提升解题能力!