293
Cerința
Alin este un elev pasionat de înmulțirea numerelor. Știe că produsul a două sau mai multe numere naturale poate avea ultima cifră 0.
Se dau n
numere naturale nenule. Ajutați-l pe Alin să determine:
Exemplu
cifre15.in
3 50 12 18
cifre15.out
2 8
Explicație
50∙12∙18=10800
, la finalul produsului sunt 2
cifre 0
, iar ultima cifră nenulă este 8
#include <bits/stdc++.h> using namespace std; ifstream fin("cifre15.in"); ofstream fout("cifre15.out"); int main() { int n; fin >> n; int d2 = 0, d5 = 0, p = 1 , m , k; for(int i = 1 ; i<=n ; ++i) { fin >> m; while(m % 5 == 0) m /= 5, d5++; while(m % 2 == 0) m /= 2, d2++; p = p * (m%10) % 10; } fout << min(d2,d5)<<" "; if(d2 > d5) { k = d2 - d5; for(int i=1;i<=k;++i) p = (p*2) % 10; } else if(d5 >= d2) { k = d5 - d2; for(int i=1;i<=k;++i) p = (p*5) % 10; } fout << p; fin.close(); fout.close(); return 0; }
Comentarii