Se citesc de la tastatură un număr ke [0, 9] şi un şir de numere naturale, până la citirea numărului 0. Să se afişeze toate perechile de numere introduse consecutive care au proprietatea că au acelaşi număr de apariții ale cifrei k în pătratul lor. 17
#include <iostream>
using namespace std;
int main()
{
int ke;
int numar_ant = -1;
int numar_crt;
cout << „Introduceti numarul ke: „;
cin >> ke;
cout << „Introduceti sirul de numere (se opreste la intalnirea cifrei 0):” << endl;
cin >> numar_crt;
while (numar_crt != 0)
{
if (numar_ant != -1)
{
int numar_aparitii_ant = 0;
int numar_aparitii_crt = 0;
int patrat_ant = numar_ant * numar_ant;
int patrat_crt = numar_crt * numar_crt;
while (patrat_ant != 0)
{
if (patrat_ant % 10 == ke)
{
numar_aparitii_ant++;
}
patrat_ant /= 10;
}
while (patrat_crt != 0)
{
if (patrat_crt % 10 == ke)
{
numar_aparitii_crt++;
}
patrat_crt /= 10;
}
if (numar_aparitii_ant == numar_aparitii_crt)
{
cout << numar_ant << ” ” << numar_crt << endl;
}
}
numar_ant = numar_crt;
cin >> numar_crt;
}
return 0;
}
Programul citeste de la tastatura numarul ke
si apoi citeste sirul de numere pana la intalnirea cifrei 0
. Pentru fiecare numar, se calculeaza patratul sau si numarul de aparitii ale cifrei ke
in patratul sau. Acest lucru se face prin parcurgerea cifrelor patratului cu ajutorul unui while
si verificarea daca cifra curenta este egala cu ke
. Numarul de aparitii se incrementeaza daca cifra curenta este egala cu ke
.
Dupa ce s-a calculat numarul de aparitii ale cifrei ke
pentru cele doua numere consecutive, se verifica daca acesta este acelasi. Daca da, atunci perechea de numere este afisata cu ajutorul functiei cout
.