Suma de números especiales de C ++ (enumeración)

Xiao Ming está muy interesado en los números que contienen 2, 0, 1 y 9 en los dígitos (excluyendo el 0 inicial). Tales números del 1 al 40 incluyen 1, 2, 9, 10 al 32, 39 y 40, un total de 28 , Su suma es 574.
Disculpe, en 1 an, ¿cuál es la suma de todos esos números?
El formato de entrada es
una línea y contiene un número entero n.
El formato de salida es
una línea, que contiene un número entero, que representa la suma de los números que cumplen las condiciones.
Rango de datos
1≤n≤10000
Ejemplo de entrada:
40
Ejemplo de salida:
574

Dado que el rango de datos de esta pregunta es muy pequeño, es suficiente realizar enumeraciones regulares y números divididos.

Código AC:

#include<iostream>

using namespace std;

int n;
long long ans=0;

bool check(int x)
{
    
    
    int d=x,t;
    bool flag=false;
    while(d)
    {
    
    
        t=d%10;
        if(t==2||t==0||t==1||t==9)
        {
    
    
            flag=true;
            break;
        }
        d/=10;
    }
    return flag;
}

int main()
{
    
    
    cin>>n;
    for(int i=1;i<=n;++i)
        if(check(i)) ans+=i;
    cout<<ans;
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_44643644/article/details/108855055
Recomendado
Clasificación