Buna!
Imi explica cineva, va rog, ce se intampla in while-ul acela?
#include
using namespace std;
long int v[10];
int main()
{
long int x,n,i;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
while(x>=10)
x/=10;
v[x]++;
}
Răspunsuri la întrebare
v[10] este folosit ca vector de Aparitie/Frecventa.
Vectorii de aparitii pastreaza de cate ori a aparut valoarea "x" in sirul dat.
De exemplu daca ai numerele 1 2 3 3 1
v[1] = 2, v[2] =1 si v[3] = 2 pentru ca 1 apare de 2 ori, 2 o data si 3 de 2 ori.
In while-ul tau, se numara aparitiile cifrelor pana cand numarul e mai mare decat 10.
Practic tu ai n numere si le descompui pe fiecare marind aparitia lor in vectorul de frecventa.
De exemplu daca ai n =2
x1 = 300, x2 = 401
pe 3 nu o sa il ia in considerare deoarece te opresti la >= 10
Ii numara aparitia lui 0 , nr devine 30, apoi iar la0 numarul devine 3 si se opreste fara sa mai mareasca si val pentru 3.
La 401 la fel, mareste aparitia lui 1, devine 40,mareste aparitia lui 0 si se opreste.
In final vei avea v[0] = 3, v[1] = 1, v[2] = 0,v[3] = 1, v[4] =1.
Sper ca ai inteles.