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:
#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;
}