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ăspunsuri la întrebare
#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