0127 - Prima cifra: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
sursa:[https://www.pbinfo.ro/probleme/127/prima-cifra] | |||
== Cerinţa == | == Cerinţa == | ||
Se dă un număr natural, apoi acel numar de numere naturale. Să se calculeze suma obținută prin adunarea primei cifre numerelor citite. | Se dă un număr natural, apoi acel numar de numere naturale. Să se calculeze suma obținută prin adunarea primei cifre numerelor citite. | ||
Line 23: | Line 24: | ||
== Rezolvare == | == Rezolvare == | ||
=== Rezolvare ver. 1 === | |||
<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 === | |||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
Line 51: | Line 125: | ||
# afișăm suma | # afișăm suma | ||
print("Datele | print("Datele au fost introduse corect.") | ||
print("Suma primelor cifre este:", suma) | print("Suma primelor cifre este:", suma) | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 22:20, 15 May 2023
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>