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

Cerinta
Andrei primeste un cod, format din maxim 10 cifre. Acesta trebuie sa analizeze acest cod si sa gaseasca toate cifrele de 0 din el. Pentru fiecare cifra de 0 gasita, acesta primeste 10 monede. Ajutati-l pe Andrei sa stranga cat mai multe monede!



Date de intrare
Pe prima linie se afla un numar natural N, reprezentand codul lui Andrei.



Date de iesire
Se va afisa pe ecran, numarul de monede pe care Andrei il primeste.



Restrictii si precizari
0 ≤ codul ≤ 2.000.000
Codul este un numar natural.

Răspunsuri la întrebare

Răspuns de Sergetec
2

Salut!

Ai rezolvarea mai jos in limbaj C++

#include <iostream>

using namespace std;

int main()

{

 int n, s = 0;

 cin >> n;

 while (n != 0)

 {

   int c = n % 10;

   if (c == 0)

   {

     s += 10;

   }

   n = n / 10;

 }

 cout << s;

 return 0;

}


LuigiY: Salut, multumesc pentru rezolvare!
Sergetec: Cu placere si mult succes la scoala!
LuigiY: Multumesc! As mai avea o intrebare la rezolvarea ta ca sa pot sa inteleg
LuigiY: de ce la final ai scris n = n/10 ?
LuigiY: sau ai putea sa explici liniile de cod de la int main pana la cout <
Sergetec: Desigur, mai intai declaram variabilele n si s, s primeste valoarea 0. Il citim pe n, iar intr-un while cat timp n este diferit de 0 o sa introducem algoritmul de verificare a cifrelor. Declar o variabila c care primeste n mod 10 (cifra unitatilor a numarului n).
Sergetec: Daca c este egal cu 0, atunci s o sa primeasca s + 10 (adunam 10 monede). In final, scapam de ultima cifra, deoarece nu mai avem nevoie de ea (n = n / 10) si o sa avem numarul fara ultima cifra, iar de aici algoritmul se repeta pana cand n este 0 (nu mai are cifre). La final dam un cout << s pentru a afisa suma de monede.
LuigiY: Am inteles! Multumesc din nou :)))
Alte întrebări interesante