|

Să se calculeze suma tuturor numerelor formate din cifre impare distincte. 20

Indicație: cel mai mic număr este 1, iar cel mai mare 97531.

#include <iostream>

using namespace std;

int main()

{

    int suma = 0;

    // parcurge toate numerele formate din cifre impare distincte

    for (int n = 13579; n <= 97531; n += 2)

    {

        // verifica daca toate cifrele sunt impare si distincte

        int temp = n;

        bool cifre_impare = true;

        bool cifre_distincte = true;

        bool cifre_utilizate[5] = {false};

        while (temp != 0)

        {

            int cifra = temp % 10;

            if (cifra % 2 == 0)

            {

                cifre_impare = false;

                break;

            }

            if (cifre_utilizate[cifra / 2])

            {

                cifre_distincte = false;

                break;

            }

            cifre_utilizate[cifra / 2] = true;

            temp /= 10;

        }

        // adauga numarul la suma daca indeplineste conditiile

        if (cifre_impare && cifre_distincte)

        {

            suma += n;

        }

    }

    // afiseaza suma

    cout << „Suma numerelor formate din cifre impare distincte este ” << suma << endl;

    return 0;

}

Programul parcurge toate numerele impare formate din cifre impare distincte (in intervalul [13579, 97531]). Pentru fiecare astfel de numar, verifica daca toate cifrele sunt impare si distincte, folosind o variabila booliana pentru fiecare conditie.

Daca numarul indeplineste ambele conditii, il adauga la suma. In final, afiseaza suma numerelor gasite.

Observati ca programul foloseste un vector de bool-uri (cifre_utilizate) pentru a tine evidenta cifrelor utilizate in verificarea cifrelor distincte. Acest vector este initializat cu false la inceputul programului si are lungimea 5 (deoarece numerele sunt formate doar din cifre impare, adica 1, 3, 5, 7 si 9).

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *