0905 - DetCifre
Cerință
Să se scrie o funcție Python care să determine prima și ultima cifră a unui număr natural transmis ca parametru. Funcția va întoarce rezultatele prin intermediul unor parametri de ieşire.
Restricții de precizări
- Numele funcției va fi detcifre
- Funcția va avea trei parametri: primul parametru reprezintă numărul n pentru care se calculează cifrele cerute,al doilea parametru va reprezenta suma cifrelor pare ale lui n, iar al treilea va reprezenta suma cifrelor impare ale lui n
- n va fi număr natural mai mic decât 2.000.000.000
Exemplul 1
- Dupa apelul
- detcifre(170 , p ,u);
- Ieșire
- p va avea valoarea 1, iar u va avea valoarea 0.
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 detcifre(n, p, u):
if n >= 2000000000:
print("Numarul trebuie sa fie mai mic decat 2.000.000.000")
return
p = n % 10 # prima cifra este restul impartirii lui n la 10
while n >= 10:
n //= 10 # eliminam ultima cifra
u = n # ultima cifra este cifra ramasa
return p, u
def main():
n = 170
p, u = None, None
detcifre(n, p, u)
print(f"Prima cifra a lui {n} este {p}")
print(f"Ultima cifra a lui {n} este {u}")
if __name__ == '__main__':
main()
</syntaxhighlight>