3077 - Suma Prefixe

From Bitnami MediaWiki

Sursa: [1]

Cerința[edit | edit source]

Scrieți un program care citește un număr natural nenul n și care calculează suma S tuturor numerelor distincte prefixe pentru n.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, cu semnificația din enunț.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran numărul S.

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

1 ≤ n ≤ 2.000.000.000

Exemplu[edit | edit source]

Intrare
12345
Iesire
13715

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def calculeaza_suma_prefixe(numar, prefix=0):

  if numar == 0:
       return prefix
    suma = 0
 for cifra in range(1, numar % 10 + 1):
       suma += calculeaza_suma_prefixe(numar // 10, prefix + cifra)
   return suma

n = int(input("Introduceți un număr natural nenul: ")) suma_prefixe = calculeaza_suma_prefixe(n) print("Suma tuturor prefixelor distincte pentru numărul", n, "este", suma_prefixe) </syntaxhighlight>