|
Titlul: Problema Informatica Scris de: Razvan Atodiresei din Septembrie 30, 2013, 19:29:32 Se citeste un vector cu componente numere naturale. Sa se afiseze numarul cifrelor 0 cu care se termina numarul format din produsul celor n componente a unui vector.
Indicatie. Nu putem efectua produsul celor n numere pentru ca, apoi, sa vedem cu cate cifre 0 se termina, pentru ca intr-un astfel de caz numarul obtinut poate fi foarte mare (nu poate fi retinut intr-o variabila de tip int sau long). Solutia este urmatoare. * se determina k_1, exponentul maxim al cifrei 2 astfel incat 2^{k_1} divide pe v[1] * se determina k_n, exponentul maxim al cifrei 2 astfel incat 2^{k_n} divide pe v[n] * se calculeaza a = k_1 + k_2 + ... + k_n. * se determina p_1, exponentul maxim al cifrei 5 astfel incat 5^{k_1} divide v[1]. * se determina p_n exponentul maxim al cifrei 5 astfel incat 5^{k_n} divide v[n] * se calculeaza b = p_1 + p_2 + ... + p_n. Numarul de cifre 0 in care se termina produsul va fi minimul intre a si b. Nu inteleg aceasta problema daca ma puteti ajuta , nu cu rezolvarea probleme ci cu niste sfaturi. Titlul: Răspuns: Problema Informatica Scris de: Pirtoaca George Sebastian din Septembrie 30, 2013, 19:37:26 Gândește-te la descompunerea numerelor in factori primi si la descompunerea lui 10. Vei observa ca se pot forma zerouri numai dacă înmulțești un 2 cu un 5. Așadar, pe tine te interesează puterea la care apare 2 si 5 in descompunerea produsului.
Nu este nevoie sa înmulțești toate numerele, ci numeri pe rând si pe urma aduni puterile corespunzătoare fiecărui număr. Ex: Fie numerele naturale 20, 14, 15 20 = 2^2 * 5 14 = 2 * 7 15 = 3 * 5 Rezulta ca 20 * 14 * 15 = 2^2 * 5 * 2 * 7 * 3 * 5 = 2^3 * 3 * 5^2 * 7. Produsul va avea 2 zerouri la sfârșit determinate de 2^2 * 5^2. |