4320 - Cifre 22: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
Line 6: Line 6:
Programul citește de la tastatură numărul '''numere''', iar apoi '''numere''' numere naturale, separate prin spații.
Programul citește de la tastatură numărul '''numere''', iar apoi '''numere''' numere naturale, separate prin spații.
== Date de ieşire ==
== Date de ieşire ==
Programul va afişa pe ecran valoarea cerută.
Dacă datele sunt introduse corect, pe ecran se va afișa '''"Datele sunt introduse corect."''', apoi se va afișa pe ecran valoarea cerută. în caz contrar, se va afișa pe ecran. '''"Datele nu au fost introduse corect."'''.
== Restricții și precizări ==
== Restricții și precizări ==
* '''numere''' ⩽ 100
* '''numere''' ⩽ 100
Line 29: Line 29:


<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
numere = int(input())
numere = int(input("Introduceți numărul de numere: "))
max_par = -1
 
max_par_num = -1
#Verificare restricție
if numere > 100:
    print("Datele nu au fost introduse corect.")
else:
    max_par = -1
    max_par_num = -1
for i in range(numere):
for i in range(numere):
     num = int(input(f"Introduceți numărul {i+1}: "))
     num = int(input(f"Introduceți numărul {i+1}: "))
     # calculam asociatul par al numarului
     # Eliminăm cifrele impare
     ap = int(str(num).replace('1', '0').replace('3', '0').replace('5', '0').replace('7', '0').replace('9', '0'))
     ap = sterge_cifre_impare(num)
    # Verificăm dacă numărul obținut are mai multe cifre pare decât maximul anterior
    # sau are același număr de cifre pare, dar este mai mare numeric
     if ap > max_par or (ap == max_par and num > max_par_num):
     if ap > max_par or (ap == max_par and num > max_par_num):
         max_par = ap
         max_par = ap
         max_par_num = num
         max_par_num = num
       
print("Datele sunt introduse corect.")
print(max_par_num)
print(max_par_num)


</syntaxhighlight>
</syntaxhighlight>

Revision as of 17:39, 7 April 2023

Sursă: [1]

Cerinţa

Se dă un șir cu numere numere naturale. Să se determine numărul din șir care are asociatul par maxim. Dacă există mai multe numere cu asociat par maxim se va determina numărul mai mare.

Date de intrare

Programul citește de la tastatură numărul numere, iar apoi numere numere naturale, separate prin spații.

Date de ieşire

Dacă datele sunt introduse corect, pe ecran se va afișa "Datele sunt introduse corect.", apoi se va afișa pe ecran valoarea cerută. în caz contrar, se va afișa pe ecran. "Datele nu au fost introduse corect.".

Restricții și precizări

  • numere ⩽ 100
  • cele numere numere sunt sunt mai mici decât 10^9

Exemplu

Intrare
5
19 410 1470 1256 70
Ieșire
1470

Explicație

Asociatul par al lui 19 este 0. Asociatul par al lui 410 este 40. Asociatul par al lui 1470 este 40. Asociatul par al lui 1256 este 26. Asociatul par al lui 70 este 0.

Valoarea maximă a asociatului par este 40. Există două numere care îl au pe 40 ca asociat par, dintre care este mai mare 1470.


Rezolvare

<syntaxhighlight lang="python" line> numere = int(input("Introduceți numărul de numere: "))

  1. Verificare restricție

if numere > 100:

   print("Datele nu au fost introduse corect.")

else:

   max_par = -1
   max_par_num = -1

for i in range(numere):

   num = int(input(f"Introduceți numărul {i+1}: "))
   # Eliminăm cifrele impare
   ap = sterge_cifre_impare(num)
   # Verificăm dacă numărul obținut are mai multe cifre pare decât maximul anterior
   # sau are același număr de cifre pare, dar este mai mare numeric
   if ap > max_par or (ap == max_par and num > max_par_num):
       max_par = ap
       max_par_num = num
       

print("Datele sunt introduse corect.") print(max_par_num)

</syntaxhighlight>