Witam. Napisałem program, który zlicza ilość powtórzeń każdej cyfry w danej liczbie. Np. 151 składa się z 2 jedynek i 1 piątki. Poniżej zamieszczam kod.
#include <iostream>
using namespace std;
void zlicz(long liczba);
int main()
{
long liczba;
cout << "Wprowadz liczbe: ";
cin >> liczba;
zlicz(liczba);
}
void zlicz(long liczba)
{
int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0; //liczniki dla kolejnych cyfr(0-9)
if(liczba<0)
{
liczba=-liczba;
}
while(liczba!=0)
{
if(liczba%10==9)
{
j++;
}
if(liczba%10==8)
{
i++;
}
if(liczba%10==7)
{
h++;
}
if(liczba%10==6)
{
g++;
}
if(liczba%10==5)
{
f++;
}
if(liczba%10==4)
{
e++;
}
if(liczba%10==3)
{
d++;
}
if(liczba%10==2)
{
c++;
}
if(liczba%10==1)
{
b++;
}
if(liczba%10==0)
{
a++;
}
liczba=liczba/10;
}
cout << "Liczba ta sklada sie z: " << endl;
cout << a << " zer" << endl
<< b << " jedynek" << endl
<< c << " dwojek" << endl
<< d << " trojek" << endl
<< e << " czworek" << endl
<< f << " piatek" << endl
<< g << " szostek" << endl
<< h << " siodemek" << endl
<< i << " osemek" << endl
<< j << " dziewiatek" << endl;
}
Chciałbym zapytać, czy ktoś mógłby przedstawić mi jakiś bardziej,hmm, "elegancki" sposób? :) Myślałem nad tablicami i pętlą, która zlicza powtórzenia każdej cyfry, ale nie wiedziałem, jak przerzucić to na C++. Pozdrawiam.