364
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
nnumere citite vor avea cel mult9cifre
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.
#include <bits/stdc++.h>
using namespace std;
int main()
{
unsigned long long n,c2=0,c5=0,p=1,a,x,pp,e;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
p=p%10;
a=x;
while(a%2==0)
{
a=a/2;
c2++;
}
while(a%5==0)
{
a=a/5;
c5++;
}
a=a%10;
p=p*a;
}
if(c2==0 && c5==0) cout<<p%10;
else
if(c2==0) cout<<"5";
else
if(c2==c5) cout<<p%10;
if(c2>c5)
{
if((c2-c5)%4==0) cout<<(p*6)%10;
else
if((c2-c5)%4==1) cout<<(p*2)%10;
else
if((c2-c5)%4==2) cout<<(p*4)%10;
else
if((c2-c5)%4==3) cout<<(p*8)%10;
}
else if(c5>c2)
{
if((c5-c2)%4==0) cout<<(p*6)%10;
else
if((c5-c2)%4==1) cout<<(p*2)%10;
else
if((c5-c2)%4==2) cout<<(p*4)%10;
else
if((c5-c2)%4==3) cout<<(p*8)%10;
}
return 0;
}
Comentarii