4232 - Cif Sim
Cerinţa
Pentru un numar dat de la tastatura, afișați mesajul DA dacă toate cifrele sale egal depărtate de extremități au suma egală cu 9, sau afișați NU dacă există cel puțin o pereche care nu are suma 9.
Explicație
Pentru un număr natural dat vrem să verificăm dacă toate cifrele sale egal depărtate de extremități au suma egală cu 9. De exemplu, n = 314586 are perechile de cifre egal depărtate de extremități (3, 6), (1,8) și (4,5). Se obțin sumele 3+6=9, 1+8=9 și 4+5=9. Numărul 386 are perechile (3,6) și (8,8) pentru că având număr impar de cifre, atunci 8 are pereche pe el însuși.
Date de intrare
Programul citește de la tastatură numărul.
Date de ieşire
Programul va verifica perechile de cifre egale depărtate de extremități și va afișa "DA" sau "NU" în consecință.
Restricții și precizări
- 1 ≤ numar ≤ 10^18
Exemplu 1
- Intrare
- 314586
- Ieșire
- DA
Exemplu 2
- Intrare
- 386
- Ieșire
- NU
Rezolvare
<syntaxhighlight lang="python" line>
- Citim numărul de la tastatură și validăm datele de intrare
while True:
try: numar = int(input("Introduceți un număr natural mai mare sau egal cu 10: ")) if numar < 10: raise ValueError("Numărul introdus trebuie să fie mai mare sau egal cu 10.") break except ValueError as e: print(f"Eroare: {e}")
- Convertim numărul într-o listă de cifre
cifre = [int(c) for c in str(numar)]
- Verificăm condiția pentru perechile de cifre
if len(cifre) % 2 == 0:
for i in range(0, len(cifre), 2): if cifre[i] + cifre[i+1] != 9: print("NU - Cel puțin una dintre perechi nu are suma 9.") break else: print("DA - Toate perechile de cifre egal depărtate de extremități au suma 9.")
else:
for i in range(0, len(cifre)-1, 2): if cifre[i] + cifre[i+1] != 9: print("NU - Cel puțin una dintre perechi nu are suma 9.") break else: print("DA - Toate perechile de cifre egal depărtate de extremități au suma 9.")
</syntaxhighlight>