0362 - Sum Cif 1
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>
- 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.