Răspuns :
Răspuns:
#include <iostream>
using namespace std;
int n, c=1, z=1, nrcif=0;
int main()
{
cout << "n= "; cin >> n;
while (z<n)
{
if (z*10>n) nrcif=nrcif+(n-z+1)*c;
else
{
if (z*10==n) nrcif=nrcif+(n-z)*c+c+1;
else nrcif=nrcif+9*z*c;
}
z=z*10; c=c+1;
}
cout << nrcif;
}
Explicație:
prin z notez zecii, adică z pornesc de la 1 şi măresc repetat de 10 ori pentru a trece la alt ordin: unităţi, zeci sute, ...
era bine să observi că lucrează această formulă 9*z*c:
de la 1 la 9 pt z=1, c=1 avem 9*1*1=9 cifre există:
de la 10 la 99 şi z=10, c=2 avem 9*10*2=180 cifre există
de la 100 la 999 şi z=100, c=3 avem 9*100*3=2700 cifre există şamd
Analizeată codul şi sper să ânţelegi ce logică am pus... Succese!
Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că informațiile disponibile v-au fost utile. Dacă aveți întrebări suplimentare sau aveți nevoie de sprijin, nu ezitați să ne contactați. Vă așteptăm cu drag și data viitoare! Nu uitați să adăugați site-ul nostru la favorite pentru acces rapid.