2995 - Finserare: Difference between revisions
Vardai Erwin (talk | contribs) |
Vardai Erwin (talk | contribs) |
||
Line 8: | Line 8: | ||
==Exemplul 1== | ==Exemplul 1== | ||
Dacă '''n = 7255''', atunci, după apelul '''inserare(n)''' valoarea lui n va fi '''7523505'''. | |||
==Important== | ==Important== |
Revision as of 20:30, 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 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) 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 = int(input("Introduceți un număr natural: ")) try: n = inserare(n) print(n) except ValueError as e: print(e)
</syntaxhighlight>