Programul citeste un numar natural din 3 cifre [100, 999] si determina daca numarul contine cifre
care se repeta. Daca da – afiseaza cifra si numarul de repetari. Daca nu – afiseaza mesajul, ca toate
cifrele sunt diferite.
Exemplu. In numarul 757 cifra 7 se repeta de 2 ori, iar numarul 589 are toate cifrele diferite.
Cerințe:
1. Fișierul C++ va conține in formă de comentariu formularea sarcinii.
2. Citirea si afișarea datelor vor fi însoțite de dialog cu utilizatorul.
3. Pe Classroom încărcați fișierul main.cpp.


Răspuns :

#include <iostream>

using namespace std;

int main()

{

int n;

cin>>n; //se citeste numarul de 3 cifre

/*fiindca avem nevoie sa se afiseze si cifra, vom crea un vector de frecventa*/

int v[10], i;

for(i=0;i<=9;i++)

v[i]=0;

/*vom lua acum fiecare cifra a numarului intr-o variabila c, iar pe pozitia c din vectorul nostru

adunam 1, astfel pozitia in vector reprezinta cifra, iar elementul ne spune nr de aparitii al cifrei

in numarul dat*/

int c;

while(n!=0)

{

c=n%10;

n/=10;

v[c]++;

}

/*acum parcurgem vectorul pentru a identifica daca este vreo cifra care se repeta, adica daca vom gasi

un element mai mare decat 2 in vector. in cazul in care se gaseste asa ceva, atunci inseamna ca o cifra se repeta si

putem afisa mesajul "DA", respectiv cifra si numarul de aparitii. in caz contrar, se va afisa mesajul "NU"*/

for(i=0;i<=9;i++)

if(v[i]>=2)

{

cout<<"DA "<<endl<<"cifra care se repeta este "<<i<<", iar numarul de aparitii este "<<v[i];

return 0; /*nu este nevoie sa se mearga in continuare in cazul in care gaseste, deci ne putem opri*/

}

/*in cazul in care am iesit din for si inca nu s-a afisat niciun mesaj, inseamna ca numarul nostru nu indeplineste conditia,

deci vom afisa un mesaj corespunzator*/

cout<<"NU";

return 0;

}

Mai jos ti-am atasat si fisierul main.cpp

Vezi imaginea Merymerisor