1566 - Cif Sort: Difference between revisions
No edit summary |
No edit summary |
||
Line 5: | Line 5: | ||
Programul citește de la tastatură numărul '''n'''. | Programul citește de la tastatură numărul '''n'''. | ||
== Date de ieşire == | == Date de ieşire == | ||
Dacă datele sunt introduse corect, pe ecran se va afișa '''"Datele sunt introduse corect."''', apoi se va afișa | Dacă datele sunt introduse corect, pe ecran se va afișa '''"Datele sunt introduse corect."''', apoi se va afișa numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc. În caz contrar, se va afișa pe ecran. '''"Datele nu au fost introduse corect."'''. | ||
== Restricții și precizări == | == Restricții și precizări == | ||
* '''10 ⩽ numar ⩽ 99.999.999''' | * '''10 ⩽ numar ⩽ 99.999.999''' |
Revision as of 06:00, 28 April 2023
Sursă: [1]
Cerinţa
Se da numarul natural n. Afisati numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieşire
Dacă datele sunt introduse corect, pe ecran se va afișa "Datele sunt introduse corect.", apoi se va afișa numarul, cu prima cifra inversata cu a 2-a, a 3-a cu a 4-a, etc. În caz contrar, se va afișa pe ecran. "Datele nu au fost introduse corect.".
Restricții și precizări
- 10 ⩽ numar ⩽ 99.999.999
- numar are un numar par de cifre.
Exemplu
- Intrare
- 123456
- Ieșire
- Datele au fost introduse corect.
- 214365
Explicație
1 a fost inversat cu 2, 3 cu 4, iar 5 cu 6.
Rezolvare
<syntaxhighlight lang="python" line>
- 1566
def verificare(numar):
if len(numar) % 2 != 0: return False try: int(numar) return True except ValueError: return False
def rezolvare(numar):
invers = "" for i in range(0, len(numar), 2): invers += numar[i+1] invers += numar[i] return int(invers)
if __name__ == "__main__":
numar = input("Introduceti un numar cu un numar par de cifre: ") if verificare(numar): print("Datele sunt introduse corect.") print(rezolvare(numar)) else: print("Datele nu au fost introduse corect.")
</syntaxhighlight>
Explicație cod
Funcția verificare(numar) verifică dacă numărul are un număr par de cifre și dacă toate cifrele sunt cifre întregi. Dacă aceste condiții sunt îndeplinite, funcția returnează True, altfel returnează False.
Funcția rezolvare(numar) primește numărul și creează un șir de caractere în care cifrele inversează poziția. Algoritmul funcției merge prin număr începând cu prima cifră și adăugând în noul șir caracterul de pe poziția impară și apoi caracterul de pe poziția pară, adică inversând poziția acestora. Funcția returnează numărul întors.
Instrucțiunea if __name__ == "__main__": citește numărul de la tastatură, verifică dacă datele sunt introduse corect folosind funcția verificare(numar) și afișează rezultatul apelând funcția rezolvare(numar) în cazul în care datele sunt corecte sau afișează mesajul "Datele au fost introduse corect." în caz contrar, se afișează mesajul "Date nu au fost introduse corect".