# PBinfo #307 – Zerouri1 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerinţa
Se dau n numere naturale nenule. Calculaţi ultima cifră nenulă din scrierea zecimală a produsului celor n numere.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spaţii.

Date de ieşire
Programul afișează pe ecran numărul C, reprezentând valoarea calculată.

Restricţii şi precizări

1 ≤ n ≤ 100
cele n numere citite vor avea cel mult 9 cifre

Exemplu:
Date de intrare

5
10 24 37 46 75
Date de ieșire

6
Explicație
Produsul celor 5 numere este 30636000, iar ultima cifră nenulă este 6.

## Cod sursă C++

```cpp
#include <iostream>
#include <cassert>
using namespace std;
int main(){
	int n,x, d2 = 0, d5 = 0, p=1;
	cin >> n;
	for(int i=1;i<=n;++i){
		cin >> x;
		while(x%2==0)
			d2++, x/=2;
		while(x%5==0)
			d5++, x/=5;
		p = (p * (x%10)) %10;
	}
	int k = 0 , f = 0;
	if(d2>d5)
		k = d2 - d5, f = 2;
	else
		k = d5 - d2, f = 5;
	while (k>0)
		p  = (p*f)%10 , k--;
	cout << p;
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/307)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/307/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-307/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
