0127 - Prima cifra
sursa:[1]
Cerinţa[edit | edit source]
Se dă un număr natural, apoi acel numar de numere naturale. Să se calculeze suma obținută prin adunarea primei cifre numerelor citite.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul, iar apoi acel numar de numere naturale, puse pe randuri diferite.
Date de ieşire[edit | edit source]
Programul afișează pe ecran suma obținută prin adunarea primei cifre a numerelor citite.
Restricții și precizări[edit | edit source]
- 0 < numar < 1000
- numerele citite vor fi mai mici decât 2.000.000
Exemplu[edit | edit source]
- Intrare
- 5
- 100 212 3 45 5021
- Ieșire
- 15
Explicație[edit | edit source]
S-au citit 5 numere. Trebuie adunate prima cifra a fiecarui numar, iar suma lor este 1+2+3+4+5=15.
Rezolvare[edit | edit source]
Rezolvare ver. 1[edit | edit source]
<syntaxhighlight lang="python" line>
def citeste_numar_numere():
""" Funcție pentru citirea numărului de numere de la utilizator. Returnează numărul citit sau None în caz de eroare. """ try: numar = int(input("Introduceți numărul de numere: ")) if numar <= 0: print("Numărul de numere trebuie să fie un întreg pozitiv.") return None return numar except ValueError: print("Numărul de numere trebuie să fie un număr întreg.") return None
def citeste_numere(numar):
""" Funcție pentru citirea listei de numere de la utilizator. Primește numărul de numere și returnează lista de numere citite sau None în caz de eroare. """ numere = [] for i in range(numar): numar_curent = input("Introduceți numărul #" + str(i+1) + ": ") try: numar_curent = int(numar_curent) if numar_curent <= 0 or numar_curent > 999999999: print("Numărul trebuie să fie un întreg pozitiv cu cel mult 9 cifre.") return None else: numere.append(numar_curent) except ValueError: print("Datele de intrare trebuie să fie numere întregi.") return None return numere
def calculeaza_suma_primelor_cifre(numere):
""" Funcție pentru calcularea sumei primelor cifre ale numerelor dintr-o listă. Primește lista de numere și returnează suma primelor cifre. """ suma = 0 for numar in numere: suma += int(str(numar)[0]) return suma
def main():
numar = citeste_numar_numere() if numar is None: exit()
numere = citeste_numere(numar) if numere is None: exit()
suma = calculeaza_suma_primelor_cifre(numere)
print("Datele au fost introduse corect.") print("Suma primelor cifre este:", suma)
if __name__ == "__main__":
main()
</syntaxhighlight>
Rezolvare ver. 2[edit | edit source]
<syntaxhighlight lang="python" line>
- citim numărul de numere
try:
numar = int(input("Introduceți numărul de numere: ")) if numar <= 0: print("Numărul de numere trebuie să fie un întreg pozitiv.") exit()
except ValueError:
print("Numărul de numere trebuie să fie un număr întreg.") exit()
- citim numerele și calculăm suma primelor cifre
suma = 0 for i in range(numar):
numar_curent = input("Introduceți numărul #" + str(i+1) + ": ") try: numar_curent = int(numar_curent) if numar_curent <= 0 or numar_curent > 999999999: print("Numărul trebuie să fie un întreg pozitiv cu cel mult 9 cifre.") exit() else: suma += int(str(numar_curent)[0]) except ValueError: print("Datele de intrare trebuie să fie numere întregi.") exit()
- afișăm suma
print("Datele au fost introduse corect.") print("Suma primelor cifre este:", suma)
</syntaxhighlight>