题目总结:P8752 [蓝桥杯 2021 省 B2] 特殊年份
1. 题目大意
- 定义:如果一个 4 位十进制年份满足“千位和十位相等”且“个位比百位大 1”,则称该年份为“特殊年份”。
- 输入:5 行,每行一个 4 位十进制数(范围在 1000 至 9999 之间),代表一个年份。
- 输出:一个整数,表示输入的 5 个年份中一共有多少个特殊年份。
2. 核心考点
- 数位分离:熟练掌握利用数学运算符(
/和%)提取整数各个数位上的数字。- 个位:
x % 10 - 十位:
x / 10 % 10 - 百位:
x / 100 % 10 - 千位:
x / 1000
- 个位:
- 条件判断:组合逻辑表达式
qian == shi && ge == bai + 1。
3. 参考代码(C++)
#include<bits/stdc++.h>usingnamespacestd;intmain(){intres=0;// 统计特殊年份的数量for(inti=0;i<5;i++){intx;cin>>x;// 提取各个数位intge=x%10;intshi=x/10%10;intbai=x/100%10;intqian=x/1000;// 判断是否为特殊年份if(qian==shi&&ge==bai+1){res++;}}cout<<res<<"\n";return0;}4. 复杂度分析
- 时间复杂度:O ( 1 ) O(1)O(1)。循环固定执行 5 次,每次运算均为常数级基本算术操作,耗时极短(在洛谷评测中仅需 20ms 左右)。
- 空间复杂度:O ( 1 ) O(1)O(1)。采用边读边处理的策略,无需额外开辟数组存储,内存开销极小。