【问题描述】
小蓝特别喜欢 2,今年是公元 2020 年,他特别高兴。
他很好奇,在公元 1 年到公元 2020 年(包含)中,有多少个年份的数位中
包含数字 2?
【输入】
没有输入。
【输出】
输出一个整数。
【提示】
把答案放在输出语句中输出,例如C/C++语言可以用printf或cout。
注意:需要输出的是一个整数,不要输出任何多余内容。
【思路】
#include<bits/stdc++.h>//测训时提交的被WA的代码
using namespace std;
int main(){
int l=1,r=2020;
int i,sum=0;
for(i=l;i<=r;i++){
int s=i;
while(s>0){
if(s%10==2){
sum++;
}
s/=10;
}
}
printf("%d\n",sum);
return 0;
}
错误原因:审题没仔细,题目是求有多少个年份的数位中包含数字 2?,出现数字2就是符合的年份。认真仔细审题呀!!!
#include<bits/stdc++.h>
int main(){
int l=1,r=2020;
int ans=0;
for(int i=l;i<=r;i++){
int s=i;
while(s>0){
if(s%10==2){
ans++;
break;
}
s=s/10;
}
}
printf("%d",ans);
return 0;
}