4316 - Cifre 18
Sursă: [1]
Cerinţa
Să se scrie un program care citește un număr natural numar și o valoare nenulă pozitie, cel mult egală cu numărul de cifre ale lui numar. Să se mărească cifra de pe pozitia ceruta din numar cu 1 dacă este mai mică decât 9 și să se înlocuiască cu 0 în caz contrar.
Date de intrare
Programul va citi de la tastatură numerele numar si pozitie.
Date de ieşire
Programul va afişa pe ecran valoarea lui numar, după transformarea cerută.
Restricții și precizări
- numar ≤ 2.000.000.000
Exemplu
- Intrare
- 31615 4
- Ieșire
- 31625
Explicație
A patra cifră a lui n=32615 este 1. Deoarece este mai mică decât 9 se va mări cu 1, deci n devine 32625.
Exemplu
- Intrare
- 32695 4
- Ieșire
- 32605
Explicație
A patra cifră a lui n=32615 este 9. În acest caz se înlocuiește cu 0, deci n devine 32605.
Rezolvare
<syntaxhighlight lang="python" line> numar = int(input("Introduceți numărul: ")) pozitie = int(input("Introduceți poziția: "))
# Verificăm dacă numar este un număr natural și k respectă condițiile impuse
if numar <= 0:
print("numar trebuie să fie un număr natural pozitiv!")
elif pozitie <= 0 or pozitie > len(str(numar)):
print("pozitie trebuie să fie un număr nenul și mai mic sau egal cu numărul de cifre ale lui numar!")
else:
# Obținem cifra de pe poziția ceruta cifra = int(str(numar)[pozitie - 1])
# Dacă cifra este mai mică decât 9, o mărim cu 1 if cifra < 9: cifra += 1 # În caz contrar, o înlocuim cu 0 else: cifra = 0
# Construim noul număr numar = str(numar)[:pozitie - 1] + str(cifra) + str(numar)[pozitie:] print("Noul număr este:", int(numar))
</syntaxhighlight>