Informatică, întrebare adresată de mateialecu8, 8 ani în urmă

Pentru a-şi mări media la informatică, Gigel trebuie să rezolve N probleme, numerotate cu: 1, 2, 3,..., N.

Deşi a rezolvat corect toate problemele, Profu nu e mulţumit deoarece soluţiile nu sunt optime. Totuşi, Profu i-a promis lui Gigel că îi va mări media dacă va scrie un program care să determine numărul total T de cifre care au fost utilizate în numerotarea celor N exerciţii rezolvate.
Va rog c++ daca se poate.

Răspunsuri la întrebare

Răspuns de Apollyon
1

Răspuns:

#include <iostream>

int aflaNrCifre(int numar);

int main()

{

 int nrProblemeRezolvate{}, sumaCifre{};

 /* citim câte probleme a rezolvat Gigel */

 std::cout << "Cate probleme a rezolvat gigel ? >> ";

 std::cin >> nrProblemeRezolvate;

 /* iar pentru fiecare problemă rezolvată */

 for (int i = 1; i <= nrProblemeRezolvate; i++) {

   /* adăugăm la sumă nr. cifrelor */  

   sumaCifre += aflaNrCifre(i);

 }

 /* la final afișăm suma */

 std::cout << "Suma cifrelor celor " << nrProblemeRezolvate << " probleme este " << sumaCifre << "\n";

 return 0;

}

int aflaNrCifre(int numar)

{

 /* contorCifre{} același lucru cu contorCifre = 0 */

 int contorCifre{};

 /* cât timp numărul e diferit de 0 */

 while (numar) {

   /* incrementăm contorul și-l împărțim ca să nu meargă while-ul încontinuu */

   contorCifre++;

   numar /= 10;

 }

 return contorCifre;

}

Alte întrebări interesante