题解:P12163 [蓝桥杯 2025 省 C/Java A] 2025

· · 题解

根据提示,要求的数就是含有至少 102215 的数。

这时候直接数位分离即可,如下:

int t=i;
int a=0,b=0,c=0;
while(t!=0){
    if(t%10==0) a++;
    if(t%10==2) b++;
    if(t%10==5) c++;
    t/=10;
}
if(a>=1&&b>=2&&c>=1) ans++;

完整代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int ans=0;
    for(int i=1;i<=20250412;i++){
        int t=i;
        int a=0,b=0,c=0;
        while(t!=0){
            if(t%10==0) a++;
            if(t%10==2) b++;
            if(t%10==5) c++;
            t/=10;
        }
        if(a>=1&&b>=2&&c>=1) ans++;
    }
    cout<<ans;
    return 0;
}