366
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