3916 - elim m
Cerința[edit | edit source]
Scrieți un program care citește două numere naturale n
și m
și care afișează cel mai mare număr care se poate obține eliminând din n
exact m
cifre, unde m
este mai mic decât numărul de cifre ale lui n
. Cifrele rămase în n
nu-și pot schimba ordinea.
Date de intrare[edit | edit source]
Programul citește de la tastatură numerele n
și m
.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran numărul x
, reprezentând valoarea cerută.
Restricții și precizări[edit | edit source]
n
are cel mult17
cifre.m
este mai mic decât numărul de cifre ale luin
.m
este număr nenul.
Exemplul 1[edit | edit source]
Intrare
3452234 4
Ieșire
544
Exemplul 2[edit | edit source]
Intrare
58435983264732647264912647362498236496324723684 21
Consola
Introduceți numere valide conform restricțiilor.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python3" line="1"> def valideaza_restricții(n, m):
return 0 < m < len(str(n)) <= 17 and n >= 0
def cel_mai_mare_numar(n, m):
cifre = [int(cifra) for cifra in str(n)]
cifre.sort(reverse=True) cifre = cifre[:-m]
rezultat = int(.join(map(str, cifre))) return rezultat
def main():
try: n = int(input("Introduceți n: ")) m = int(input("Introduceți m: "))
if not valideaza_restricții(n, m): print("Introduceți numere valide conform restricțiilor.") return
if len(str(n)) > 17: print("Numărul introdus depășește lungimea maximă admisă de 17 cifre.") return
rezultat = cel_mai_mare_numar(n, m) print(f"Cel mai mare număr obținut eliminând exact {m} cifre din {n} este: {rezultat}")
except ValueError: print("Introduceți numere valide.")
if __name__ == "__main__":
main()
</syntaxhighlight>