Informatică, întrebare adresată de Madalina9119, 8 ani în urmă

a.) Scrieti definitia completa a unui subprogram, nz, cu un parametru intreg n(0<n<=32000), care returneaza numarul zerourilor de la sfarsitul numarului n!=1*2*3*..*n.
b.) Scrieti programul C/C++ care citeste de la tastatura un nr natural  k (0<k<1500) si determina folosind aeluri ultile ale functiei nz, cel mai mic numar natural n pentru care n! are cel putin k zerouri la sfarsit.


abcdebygabi: Ideea e in felul urmator. de la 15! incolo sau mai devreme nu mai poti memora asta intr-o variabila de tip int. In problema ai zis ca n merge pana 32000 nici nu iti poti imagina un astfel de numar.
abcdebygabi: hai sa o luam usor, cum se formeaza un zerou? Pai din 10*ceva sau din 2*5, atat
abcdebygabi: Hai sa luam cazul 10! se observa ca in acest produs avem 2*5*10 adica 2 zerouri, altele nu se mai formeaza
abcdebygabi: nz(15!)=nz(2*5*10*15*un numar par)=3 zerouri
abcdebygabi: Pana aici se observa ca sunt n/5 zerouri
abcdebygabi: formula merge pana la 24
abcdebygabi: la 25 deja usnt probleme pt ca 25=5^2 adica cu doua numere pare formeaza 2 zerouri. La fel si 50=2*5^2, si 75
abcdebygabi: La aceste cazuri daca observi bine apar in felul urmator
abcdebygabi: (ex: 25) 25/5=5 deci apar 5 zerouri, dar tinand cont ca 5 se mai poate imparti o data la 5, facem acest lucru : 5/5=1+5 zerouri din urma=6 zerouri.
abcdebygabi: Deci ca sa calculam nr de zerouri din n!, il impartim pe n la 5 pana cand catul impartirii este mai mic sau egal decat 5.

Răspunsuri la întrebare

Răspuns de abcdebygabi
6
Sunt sigur ca la b poti sa faci singura, daca nu l-ai facut deja(de 6 zile)

Anexe:
Alte întrebări interesante