2206 - Min Impar: Diferență între versiuni

De la Universitas MediaWiki
(Pagină nouă: == Cerinţa == 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 == Programul citește de la tastatură numărul '''X'''. == Date de ieșire == 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.". == R...)
 
Fără descriere a modificării
Linia 49: Linia 49:




x = int(input("Introduceți numărul X: "))
if __name__ == '__main__':
if not validare_date(x):
    x = int(input("Introduceți numărul X: "))
    print("Datele nu corespund restricțiilor impuse.")
    if not validare_date(x):
    exit()
        print("Datele nu corespund restricțiilor impuse.")
print("Datele sunt introduse corect.")
        exit()
y = gaseste_numar_imp(x)
    print("Datele sunt introduse corect.")
print(y)
    y = gaseste_numar_imp(x)
 
    print(y)
 
 





Versiunea de la data 24 martie 2023 19:48

Cerinţa

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

Programul citește de la tastatură numărul X.

Date de ieșire

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

  • 1 ≤ X ≤ 10^18


Exemple

Exemplul 1

Intrare
22
Ieșire
31

Exemplul 1

Intrare
10
Ieșire
11

Exemplul 1

Intrare
-2
Ieșire
Datele nu corespund restricțiilor impuse.



Rezolvare

# 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)