👤

Buna brainly! Am o problema la info (clasa a 9a, nu am facut vectorii la info) si trebuie sa o scriu in c++
se citete un nr n de la tastatura. sa se calculeze numarul de cifre obtinute prin alaturrea numerelor de la 1 la n.
exemplu n=11
1234567891011
se afiseaza 13

Eu am scris-o corect, a trecut de programul de verificari.
imi apare si tabelul negru dar daca introduc valoarea n nu se intampla nimic. sora-mea spune ca nu compileaza.

as vrea sa rezolvati si voi problema si sa incerc si variantele voastre, am impresia ca a mea e cam complicata
multumesc!


Buna Brainly Am O Problema La Info Clasa A 9a Nu Am Facut Vectorii La Info Si Trebuie Sa O Scriu In C Se Citete Un Nr N De La Tastatura Sa Se Calculeze Numarul class=

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.


Wix Learning: Alte intrebari