题解
2026-04-04 18:07:59
发布于:上海
196阅读
0回复
0点赞
通过模10找个位,如果是2,cnt++,最后判断是否刚好有三个2
#include<cstdio>
using namespace std;
int main(){
int l,r;
scanf("%d%d",&l,&r);
int ans=0;
for(int i=l;i<=r;i++){
int x=i,cnt=0;//cnt记录2的数量
while(x>0){
if(x%10==2)cnt++;
x/=10;
}
if(cnt==3)ans++;
}
printf("%d",ans);
return 0;
}
全部评论 3
#include<bits/stdc++.h> using namespace std; int main(){ int l,r,c=0,sum=0;//c是2的个数,sum是美丽数的个数 cin>>l>>r; for(int i=l;i<=r;i++){ int a=i; while(a>0){ if(a%10==2)c++; a/=10; } if(c==3)sum+=1; } cout<<sum; return 0; }救命,为什么不对

6天前 来自 广东
0每次循环要重新赋值为零
6天前 来自 浙江
0ok明白谢谢
4天前 来自 广东
0
喔
2026-07-07 来自 浙江
0这年头的劳资才不用printf呢,太费劲了
2026-06-09 来自 浙江
0printf更快,不用也无所谓
2026-06-13 来自 上海
0
















有帮助,赞一个