3254 - Prod PI: Difference between revisions
mNo edit summary |
|||
Line 17: | Line 17: | ||
== Rezolvare == | == Rezolvare == | ||
== Rezolvare ver. 1 == | === Rezolvare ver. 1 === | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
Latest revision as of 10:13, 12 May 2023
Sursa: [1]
Cerinţa[edit | edit source]
Se dă un număr natural n cu cel puțin două cifre, care conține atât cifre pare cât și cifre impare. Calculați produsul dintre cea mai mare cifră pară și cea mai mică cifră impară a lui n.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieşire[edit | edit source]
Programul va afișa pe ecran produsul cerut.
Restricții și precizări[edit | edit source]
- 10 ≤ n ≤ 1.000.000.000
Exemplu[edit | edit source]
- Intrare
- 57289
- Ieșire
- 40
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line>
def calculate_product_of_digits(numar):
cifra_max_para = 0 # Variabila pentru a stoca cea mai mare cifră pară cifra_min_impara = 10 # Variabila pentru a stoca cea mai mică cifră impară (inițializată cu o valoare mai mare decât maximul posibil)
while numar > 0: # Cat timp mai avem cifre în număr cifra_curenta = numar % 10 # Obținem cifra curentă prin împărțirea numărului la 10 și luând restul if cifra_curenta % 2 == 0 and cifra_curenta > cifra_max_para: # Dacă cifra curentă este pară și mai mare decât cifra maximă pară înregistrată până acum cifra_max_para = cifra_curenta # Actualizăm cifra maximă pară elif cifra_curenta % 2 != 0 and cifra_curenta < cifra_min_impara: # Dacă cifra curentă este impară și mai mică decât cifra minimă impară înregistrată până acum cifra_min_impara = cifra_curenta # Actualizăm cifra minimă impară numar //= 10 # Eliminăm cifra curentă din număr prin împărțirea numărului la 10 și obținând partea întreagă
produs_pi = cifra_max_para * cifra_min_impara # Calculăm produsul dintre cifra maximă pară și cifra minimă impară
return produs_pi # Returnăm rezultatul
if __name__ == '__main__':
numar = int(input("Introduceți un număr cu cel puțin două cifre și care conține cifre pare și impare: "))
produs_pi = calculate_product_of_digits(numar) # Apelăm funcția pentru a calcula produsul
print("Datele sunt introduse corect.") print(f"Produsul dintre cea mai mare cifră pară și cea mai mică cifră impară a numărului este {produs_pi}.")
</syntaxhighlight>
Rezolvare ver. 2[edit | edit source]
<syntaxhighlight lang="python" line>
numar = int(input("Introduceți un număr cu cel puțin două cifre și care conține cifre pare și impare: "))
cifra_max_para = 0 cifra_min_impara = 10
while numar > 0:
cifra_curenta = numar % 10 if cifra_curenta % 2 == 0 and cifra_curenta > cifra_max_para: cifra_max_para = cifra_curenta elif cifra_curenta % 2 != 0 and cifra_curenta < cifra_min_impara: cifra_min_impara = cifra_curenta numar //= 10
produs_pi = cifra_max_para * cifra_min_impara
print("Datele sunt introduse corect.") print(f"Produsul dintre cea mai mare cifră pară și cea mai mică cifră impară a numărului {numar} este {produs_pi}.")
</syntaxhighlight>