👤

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 pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!


En Studentsy: Alte intrebari