2995 - Finserare: Difference between revisions

From Bitnami MediaWiki
Line 18: Line 18:
===Rezolvare ver. 1===
===Rezolvare ver. 1===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def validare(n):
    return 10 <= int(n) <= 99999


def inserare(n):
def inserare(n):
    """
    Inserează valoarea absolută a diferenței între oricare două cifre alăturate
    în numărul natural n.
    """
    if not 10 <= n <= 99999:
        raise ValueError("n trebuie să fie între 10 și 99999")
     n_str = str(n)
     n_str = str(n)
     result = n_str[0]
     result = n_str[0]
     for i in range(1, len(n_str)):
     for i in range(1, len(n_str)):
         diff = abs(int(n_str[i]) - int(n_str[i-1]))
         diff = abs(int(n_str[i]) - int(n_str[i - 1]))
         result += str(diff) + n_str[i]
         result += str(diff) + n_str[i]
     return int(result)
     return int(result)
Line 36: Line 32:


if __name__ == '__main__':
if __name__ == '__main__':
     n = int(input("Introduceți un număr natural: "))
     n = input("Introduceți un număr natural: ")
     try:
     if validare(n):
        n = int(n)
        print("Datele introduse corespund restricțiilor impuse")
         n = inserare(n)
         n = inserare(n)
         print(n)
         print(n)
     except ValueError as e:
     else:
         print(e)
         print("Datele introduse nu corespund restricțiilor impuse")
 
 
</syntaxhighlight>
</syntaxhighlight>

Revision as of 20:35, 19 March 2023

Cerință

Scrieți funcția inserare care primește ca parametru un număr natural n și furnizează prin intermediul aceluiași parametru numărul obținut din n prin inserarea, între oricare două cifre alăturate ale sale, a valorii absolute a diferenței acestora.


Restricții de precizări

  • 10 ≤ n ≤ 99999
  • Puteți apela funcția matematică abs.

Exemplul 1

Dacă n = 7255, atunci, după apelul inserare(n) valoarea lui n va fi 7523505.

Important

Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.


Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare(n):

   return 10 <= int(n) <= 99999


def inserare(n):

   n_str = str(n)
   result = n_str[0]
   for i in range(1, len(n_str)):
       diff = abs(int(n_str[i]) - int(n_str[i - 1]))
       result += str(diff) + n_str[i]
   return int(result)


if __name__ == '__main__':

   n = input("Introduceți un număr natural: ")
   if validare(n):
       n = int(n)
       print("Datele introduse corespund restricțiilor impuse")
       n = inserare(n)
       print(n)
   else:
       print("Datele introduse nu corespund restricțiilor impuse")

</syntaxhighlight>