#307 Zerouri1

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.
//asta e sursa mea de 20%
#include

using namespace std;
int nz(int P)
{
int p=0;
while(P){
if(P%10==0)
p++;
else
break;
P/=10;
}
return P%10;
}
int main()
{
int n,x;
long long P=1;
int p;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
P*=x;
}
cout< }


Răspuns :

#include <iostream>

using namespace std;

long long int n, i, j, num, m, exp2, exp5, ultima=1, cif;

int main()

{

   cin >> n;

   for (j=1; j<=n; ++j)

   {

       cin >> num;

       while (num%2==0) { ++exp2; num/=2;}

       while (num%5==0) { ++exp5; num/=5;}

       cif=num%10;

       ultima=(ultima*cif)%10;

   }

   

   if (exp2>exp5)

   {

       exp2=exp2-exp5;

       m=exp2%4;

       if (m==1) ultima=(ultima*2)%10;

       if (m==2) ultima=(ultima*4)%10;

       if (m==3) ultima=(ultima*8)%10;

       if (m==0) ultima=(ultima*6)%10;

   }

   else

   {

       if (exp2==exp5) ultima=ultima;

       else ultima=5;

   }

   cout << ultima;

}