fbpx

Problema #1636 – Cifre15 – Rezolvari PBInfo

de Mihai-Alexandru

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

S-ar putea sa iti placa