Răspuns :
Prima problema:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int cnt=0,cnt2=0;
for(int i=1;i<=n;++i){
int x;cin>>x;
while(x%5==0)++cnt,x/=5;
while(x%2==0)++cnt2,x/=2;
}
cout<<min(cnt,cnt2)<<'\n';
return 0;
}
Algoritmul se bazeaza pe ideea ca numarul de zerouri de la finalul inmultirii este egal cu numarul de numere egale cu 10 inmultite in numar. Cum 10 se descompune in 2*5 trebuie sa aflam de cate ori se gaseste 2 in factorizare si de cate ori se gaseste 5. Astfel, minimul dintre cele doua valori va fi numarul de 10 din factorizare, respectiv numarul de zerouri de la finalul inmultirii!
Problema 2:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,cnt=0;
cin>>n;
for(int i=1;i<=n;++i){
int x;cin>>x;
x%=10;
cnt+=x;cnt%=10;
}
cout<<cnt<<'\n'
return 0;
}
Algoritmul se bazeaza pe ideea ca trebuie sa mentinem doar ultima cifra a fiecarui numar si mereu sa updatam variabilele in functie de asta!
Sper ca te-am ajutat, Bafta! FORTA HXO!
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!