0023 - Oglindit1
Cerinţa
Să se scrie o funcție Python care să determine oglinditul unui număr natural transmis ca parametru. Funcția va întoarce rezultatul prin intermediul unui parametru de ieşire.
Restricţii şi precizări
- numele funcției va fi oglindit
- funcția va avea doi parametri: primul parametru reprezintă numărul pentru care se calculează oglinditul, iar la doilea parametru reprezintă valoarea calculată
- numărul pentru care se calculează oglinditul va fi mai mic decât 1.000.000.000
Explicație
Funcția oglindit primește două parametri: n, numărul pentru care se calculează oglinditul, și ogl, variabila în care se stochează rezultatul. În corpul funcției, se initializează ogl cu 0, apoi se aplică algoritmul clasic de calcul al oglinditului: se extrage ultima cifră a lui n cu ajutorul operatorului modulo (n % 10), se adaugă această cifră la variabila ogl (care este mutată la stânga cu o poziție prin înmulțirea cu 10) și se elimină ultima cifră a lui n prin împărțirea la 10 (n // 10). Acest proces se repetă până când n devine 0, moment în care ogl conține oglinditul lui n.
Rezolvare
<syntaxhighlight lang="python"> def oglindit(n, ogl):
ogl = 0 while n > 0: ogl = ogl * 10 + n % 10 n = n // 10
def validare_oglindit(n):
if not isinstance(n, int): raise TypeError("n trebuie să fie de tip întreg") if n <= 0 or n >= 1000000000: raise ValueError("n trebuie să fie un număr natural mai mic decât 1.000.000.000")
def main():
n = int(input("Introduceți un număr natural mai mic decât 1.000.000.000: ")) validare_oglindit(n) ogl = 0 oglindit(n, ogl) print(f"Oglinditul numărului {n} este {ogl}.")
</syntaxhighlight>