0371 - Numarare
Sursa: [1]
Cerinţa
Se citesc n numere naturale. Determinați câte perechi de numere citite consecutiv au aceeași sumă a cifrelor.
Date de intrare
Programul citește de la tastatură un număr natural, iar apoi acel numar de numere naturale.
Date de ieșire
Programul afișează pe ecran numărul de perechi de numere citite consecutiv care au aceeași sumă a cifrelor.
Restricţii şi precizări
- 1 ≤ n ≤ 100
- cele n numere citite vor avea cel mult 9 cifre
Exemplu
- Intrare
- 5
- 176 293 52421 91 424
- Ieșire
- 3
Explicație
Cele 3 perechi sunt: 176 293, 293 52421, 91 424.
Rezolvare
<syntaxhighlight lang="python" line>
- citim numarul de numere
nr_de_numere = input("Introduceti numarul de numere: ")
- validam numarul de numere
while True:
try: nr_de_numere = int(nr_de_numere) if nr_de_numere < 1 or nr_de_numere > 100: raise ValueError("Numarul de numere trebuie sa fie intre 1 si 100.") break except ValueError as e: print(e) nr_de_numere = input("Introduceti un numar valid intre 1 si 100: ")
- citim lista de numere
numere = [] for i in range(nr_de_numere):
num = input("Introduceti numarul {}: ".format(i + 1)) while True: try: num = int(num) if num < 0 or num > 999999999: raise ValueError("Fiecare numar trebuie sa fie un numar natural cu cel mult 9 cifre.") break except ValueError as e: print(e) num = input("Introduceti un numar valid pentru numarul {}: ".format(i + 1)) numere.append(num)
- initializam un contor pentru perechile de numere cu aceeasi suma a cifrelor
pair_count = 0
- parcurgem lista de numere si verificam perechile consecutive
for i in range(1, nr_de_numere):
# calculam suma cifrelor primului numar din pereche suma1 = sum(int(digit) for digit in str(numere[i - 1]))
# calculam suma cifrelor celui de-al doilea numar din pereche suma2 = sum(int(digit) for digit in str(numere[i]))
# daca cele doua sume sunt egale, incrementam contorul if suma1 == suma2: pair_count += 1
- afisam numarul de perechi cu aceeasi suma a cifrelor
print("Numarul de perechi de numere cu aceeasi suma a cifrelor este: {}".format(pair_count))
</syntaxhighlight>