0127 - Prima cifra: Difference between revisions

From Bitnami MediaWiki
Am creat de la zero.
 
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
sursa:[https://www.pbinfo.ro/probleme/127/prima-cifra]
== Cerinţa ==
== Cerinţa ==
Se dă un număr natural, apoi se afiseaza acel numar de numere naturale. Să se calculeze suma obținută prin adunarea primei cifre a 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.


== Date de intrare ==
== Date de intrare ==
Line 9: Line 10:


== Restricții și precizări ==
== Restricții și precizări ==
* 0 < n < 1000
* 0 < numar < 1000
* numerele citite vor fi mai mici decât 2.000.000
* numerele citite vor fi mai mici decât 2.000.000


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 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>

  1. 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()
  1. 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()
  1. afișăm suma

print("Datele au fost introduse corect.") print("Suma primelor cifre este:", suma)

</syntaxhighlight>