0362 - Sum Cif 1

From Bitnami MediaWiki
Revision as of 19:15, 28 April 2023 by Tamas Claudia (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursă: [1]

Cerinţa[edit | edit source]

Se citește un număr natural n. Să se determine suma cifrelor aflate pe poziții pare. Numărarea pozițiilor în numărul dat se face începând de la cifra unităților.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n.

Date de ieşire[edit | edit source]

Dacă datele introduse sunt corecte, pe ecran se va afișa "Datele introduse sunt corecte.", apoi programul afișează pe ecran numărul s, reprezentând suma cifrelor aflate pe poziții pare. În caz contrar, se va afișa pe ecran mesajul "Datele introduse nu sunt corecte.".

Restricții și precizări[edit | edit source]

  • 1 ⩽ n ⩽ 1.000.000.000

Exemplu[edit | edit source]

Intrare
59712654
Ieșire
Datele introduse sunt corecte.
Suma cifrelor aflate pe pozitii pare este 19.

Explicație[edit | edit source]

S-au adunat cifrele 5 2 7 5.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line>

  1. 0362

def verificare_date(n: int) -> bool:

   if n < 1 or n > 1000000000:
       return False
   return True


def suma_cifre_pare(n: int) -> int:

   suma = 0
   pozitie = 1
   while n > 0:
       cifra = n % 10
       if pozitie % 2 == 0:
           suma += cifra
       pozitie += 1
       n //= 10
   return suma


if __name__ == "__main__":

   n = int(input("Introduceti un numar: "))
   if verificare_date(n):
       print("Datele introduse sunt corecte.")
       print(f"Suma cifrelor aflate pe pozitii pare este {suma_cifre_pare(n)}.")
   else:
       print("Datele introduse nu sunt corecte.")


</syntaxhighlight>

Explicație rezolvare[edit | edit source]

Prima funcție, verificare_date(n: int) -> bool, primește ca argument un număr întreg n și returnează True dacă numărul este între 1 și 1.000.000.000 și False în caz contrar.

A doua funcție, suma_cifre_pare(n: int) -> int, primește ca argument un număr întreg n și calculează suma cifrelor aflate pe poziții pare în numărul dat. Aceasta se realizează folosind o buclă while care descompune numărul în cifre și adaugă cifrele aflate pe poziții pare la variabila suma.

Funcția principală începe prin citirea unui număr întreg de la tastatură, utilizând funcția input() și transformând rezultatul într-un întreg cu ajutorul funcției int(). Dacă numărul introdus este valid, adică este între 1 și 1.000.000.000, se afișează un mesaj corespunzător și se calculează și afișează suma cifrelor aflate pe poziții pare, utilizând funcția suma_cifre_pare(n). În caz contrar, se afișează un mesaj de eroare.