3077 - Suma Prefixe: Difference between revisions
No edit summary |
Pop Giulia (talk | contribs) No edit summary |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/3077/suma-prefixe] | Sursa: [https://www.pbinfo.ro/probleme/3077/suma-prefixe] | ||
== Cerința == | ==Cerința== | ||
Scrieți un program care citește un număr natural nenul | 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 == | ==Date de intrare== | ||
Programul citește de la tastatură numărul | Programul citește de la tastatură numărul n, cu semnificația din enunț. | ||
== Date de ieșire == | ==Date de ieșire== | ||
Programul va afișa pe ecran | Programul va afișa pe ecran numărul S. | ||
==Restricții și precizări== | |||
1 ≤ n ≤ 2.000.000.000 | |||
==Exemplu== | |||
;Intrare | |||
== Exemplu == | |||
; Intrare | :12345 | ||
: 12345 | |||
; | ;Iesire | ||
: 13715 | |||
== | :13715 | ||
== | ==Rezolvare== | ||
<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> |
Latest revision as of 12:32, 20 May 2023
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>