题目描述思路源代码其他真题
题目描述如果一个整数的某个数位包含 2 ,则称这个数为一个“最2数字”。例如:102、2021 都是最2数字。
请问在 1(含) 到 2021(含) 中,有多少个最2数字。
这道题是填空题,真的很简答。这个模拟赛,真的很离谱。
就用一个for循环遍历即可,每次循环中,检查该数有无2。
经典地取余进行筛选。
不过还是要注意细节。在每次循环中,要声明一个数来存取i的值。而不是直接用i来计算。
要学会自己debug
源代码public class Main{
public static void main(String args[]) {
int ans=0;//答案
for(int i=1;i<=2021;i++) {//从1开始遍历到2021
int j=i;//定义j来存取i的值
boolean flag=true;//布尔值
while(flag) {//当为true是循环
if(j%10==2) {//取余
ans++;
break;
}
j=j/10;//舍去末尾
if(j<=0) flag=false;//结束while循环的标志
}
}
System.out.println(ans);//输出
}
}
其他真题
链接: 最全的2021蓝桥杯算法课《算法很美》的学习笔记总目录+真题详解.



