4316 - Cifre 18: Difference between revisions

From Bitnami MediaWiki
mNo edit summary
Line 34: Line 34:


<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
# Citim numărul și poziția cifrei de la tastatură
numar = int(input("Introduceți numărul: "))
numar = int(input("Introduceți numărul: "))
pozitie = int(input("Introduceți poziția: "))
pozitie = int(input("Introduceți poziția cifrei pe care doriți să o măriți: "))


    # Verificăm dacă numar este un număr natural și k respectă condițiile impuse
# Verificăm dacă numărul este un număr natural și poziția respectă condițiile impuse
if numar <= 0:
if numar <= 0:
     print("numar trebuie să fie un număr natural pozitiv!")
     print("Numărul trebuie să fie un număr natural pozitiv!")
elif pozitie <= 0 or pozitie > len(str(numar)):
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!")
     print("Poziția trebuie să fie un număr nenul și mai mic sau egal cu numărul de cifre al numărului!")
else:
else:
     # Obținem cifra de pe poziția ceruta
     # Obținem cifra de pe poziția k
     cifra = int(str(numar)[pozitie - 1])
     cifra = int(str(numar)[pozitie-1])
 
   
     # Dacă cifra este mai mică decât 9, o mărim cu 1
     # Dacă cifra este mai mică decât 9, o mărim cu 1
     if cifra < 9:
     if cifra < 9:
Line 52: Line 53:
     else:
     else:
         cifra = 0
         cifra = 0
 
   
     # Construim noul număr
     # Construim noul număr prin concatenarea părților din număr înainte și după poziția data
     numar = str(numar)[:pozitie - 1] + str(cifra) + str(numar)[pozitie:]
     numar = str(numar)[:pozitie-1] + str(cifra) + str(numar)[pozitie:]
   
    # Afișăm noul număr
     print("Noul număr este:", int(numar))
     print("Noul număr este:", int(numar))


</syntaxhighlight>
</syntaxhighlight>

Revision as of 16:59, 31 March 2023

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>

  1. Citim numărul și poziția cifrei de la tastatură

numar = int(input("Introduceți numărul: ")) pozitie = int(input("Introduceți poziția cifrei pe care doriți să o măriți: "))

  1. Verificăm dacă numărul este un număr natural și poziția respectă condițiile impuse

if numar <= 0:

   print("Numărul trebuie să fie un număr natural pozitiv!")

elif pozitie <= 0 or pozitie > len(str(numar)):

   print("Poziția trebuie să fie un număr nenul și mai mic sau egal cu numărul de cifre al numărului!")

else:

   # Obținem cifra de pe poziția k
   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 prin concatenarea părților din număr înainte și după poziția data
   numar = str(numar)[:pozitie-1] + str(cifra) + str(numar)[pozitie:]
   
   # Afișăm noul număr
   print("Noul număr este:", int(numar))

</syntaxhighlight>