online: 7; azi: 1220; total: 53226 Manual clasa a ix a - Algoritmi - Algoritmi pentru prelucrarea cifrelor

Manual clasa a IX a

Algoritmi

Algoritmi pentru prelucrarea cifrelor

Să se calculeze suma tuturor numerelor formate din cifre impare distincte .
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).