2206 - Min Impar: Difference between revisions
Nagy Lenard (talk | contribs) No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 16: | Line 16: | ||
; ''Ieșire'' | ; ''Ieșire'' | ||
:31 | :31 | ||
===Exemplul | ===Exemplul 2=== | ||
; ''Intrare'' | ; ''Intrare'' | ||
:10 | :10 | ||
; ''Ieșire'' | ; ''Ieșire'' | ||
:11 | :11 | ||
===Exemplul | ===Exemplul 3=== | ||
; ''Intrare'' | ; ''Intrare'' | ||
:-2 | :-2 | ||
Line 63: | Line 63: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Explicatie== | |||
Funcția validare_date(x: int) -> bool: Această funcție verifică dacă numărul x primit ca argument se încadrează în intervalul [1, 10^18] și returnează True dacă acesta este valid și False altfel. Astfel, această funcție este folosită pentru a valida datele de intrare înainte de a executa funcția gaseste_numar_imp. | |||
Funcția gaseste_numar_imp(x: int) -> int: Această funcție primește un număr x și începe să-l mărească treptat până când găsește cel mai mic număr Y care are doar cifre impare și Y este mai mare sau egal cu X. În fiecare iterație, funcția verifică dacă toate cifrele numărului curent sunt impare. Dacă este așa, atunci funcția returnează numărul curent, altfel continuă să-l mărească pe x cu o unitate și să reia verificarea. | |||
Blocul if __name__ == '__main__':: Acest bloc verifică dacă acest script este rulat direct ca fișier executabil sau a fost importat în alt modul Python. În cazul în care acesta este rulat direct, atunci se solicită utilizatorului să introducă un număr întreg x și se validează acest număr folosind funcția validare_date. Dacă numărul este valid, atunci se calculează cel mai mic număr Y care are doar cifre impare și este mai mare sau egal cu X, folosind funcția gaseste_numar_imp. În cele din urmă, numărul Y este afișat pe ecran. |
Latest revision as of 16:46, 29 April 2023
Cerinţa[edit | edit source]
Se dă un număr X. Să se afle cel mai mic număr Y ≥ X cu proprietatea că Y are doar cifre impare.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul X.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran: "Datele sunt introduse corect.",programul va afișa pe ecran numărul Y. În cazul în care datele nu respectă restricțiile, se va afișa: "Datele nu corespund restricțiilor impuse.".
Restricţii şi precizări[edit | edit source]
- 1 ≤ X ≤ 10^18
Exemple[edit | edit source]
Exemplul 1[edit | edit source]
- Intrare
- 22
- Ieșire
- 31
Exemplul 2[edit | edit source]
- Intrare
- 10
- Ieșire
- 11
Exemplul 3[edit | edit source]
- Intrare
- -2
- Ieșire
- Datele nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 2206 - Min Impar
def validare_date(x: int) -> bool:
""" Verifică dacă datele de intrare sunt valide conform cerințelor. """ return 1 <= x <= 10 ** 18
def gaseste_numar_imp(x: int) -> int:
""" Găsește cel mai mic număr Y ≥ X cu proprietatea că Y are doar cifre impare. """ while True: if all(int(d) % 2 == 1 for d in str(x)): return x x += 1
if __name__ == '__main__':
x = int(input("Introduceți numărul X: ")) if not validare_date(x): print("Datele nu corespund restricțiilor impuse.") exit() print("Datele sunt introduse corect.") y = gaseste_numar_imp(x) print(y)
</syntaxhighlight>
Explicatie[edit | edit source]
Funcția validare_date(x: int) -> bool: Această funcție verifică dacă numărul x primit ca argument se încadrează în intervalul [1, 10^18] și returnează True dacă acesta este valid și False altfel. Astfel, această funcție este folosită pentru a valida datele de intrare înainte de a executa funcția gaseste_numar_imp.
Funcția gaseste_numar_imp(x: int) -> int: Această funcție primește un număr x și începe să-l mărească treptat până când găsește cel mai mic număr Y care are doar cifre impare și Y este mai mare sau egal cu X. În fiecare iterație, funcția verifică dacă toate cifrele numărului curent sunt impare. Dacă este așa, atunci funcția returnează numărul curent, altfel continuă să-l mărească pe x cu o unitate și să reia verificarea.
Blocul if __name__ == '__main__':: Acest bloc verifică dacă acest script este rulat direct ca fișier executabil sau a fost importat în alt modul Python. În cazul în care acesta este rulat direct, atunci se solicită utilizatorului să introducă un număr întreg x și se validează acest număr folosind funcția validare_date. Dacă numărul este valid, atunci se calculează cel mai mic număr Y care are doar cifre impare și este mai mare sau egal cu X, folosind funcția gaseste_numar_imp. În cele din urmă, numărul Y este afișat pe ecran.