online: 5; azi: 833; total: 52839 Manual clasa a ix a - Algoritmi - Algoritmi pentru prelucrarea cifrelor

Manual clasa a IX a

Algoritmi

Algoritmi pentru prelucrarea cifrelor

Să se afişeze toate numerele naturale mai mici decât n care au proprietatea că pătratul şi cubul fiecăruia au cel puțin o cifră comună ; pentru fiecare număr găsit să se afişeze câte cifre sunt comune şi care sunt acelea .
# include < iostream >
using namespace std ;
int main ()
{
int n;
cout << " Introduceti numarul n: " ;
cin >> n;
for ( int i = 1 ; i < n; i++)
{
int patrat = i * i;
int cub = i * i * i;
int cifra, nr_cifre_comune = 0 ;
bool cifre_comune [ 10 ] = { false };
while ( patrat != 0 )
{
cifra = patrat % 10 ;
if (cub % 10 == cifra)
{
nr_cifre_comune ++;
cifre_comune [cifra] = true ;
}
patrat /= 10 ;
cub /= 10 ;
}
if ( nr_cifre_comune > 0 )
{
cout << i << " are " << nr_cifre_comune << " cifre comune: " ;
for ( int j = 0 ; j < 10 ; j++)
{
if ( cifre_comune [j])
{
cout << j << " " ;
}
}
cout << endl ;
}
}
return 0 ;
}

La inceputul programului se cere utilizatorului sa introduca numarul n . Apoi, se parcurg toate numerele naturale mai mici decat n cu ajutorul instructiunii for .
Pentru fiecare numar , se calculeaza patratul si cubul acestuia. Se parcurge cifra cu cifra patratul , iar pentru fiecare cifra se verifica daca exista si in cifra cubului. Daca exista, se incrementeaza numarul de cifre comune si se marcheaza cifra respectiva cu ajutorul unui vector boolean cifre_comune .
Dupa ce s-au parcurg toate cifrele, daca numarul de cifre comune este mai mare decat 0, se afiseaza numarul curent si numarul de cifre comune, iar apoi se parcurge vectorul cifre_comune pentru a afisa cifrele comune.