3905 - Suma Perm n9: Difference between revisions
Pop Giulia (talk | contribs) |
Pop Giulia (talk | contribs) No edit summary |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/3905/suma-perm-n9] | |||
==Cerința== | ==Cerința== | ||
Scrieți un program care citește un număr natural n și care să calculeze și să afișeze suma S a tuturor numerelor obținute prin rearanjarea cifrelor lui n. Numărul n are toate cifrele distincte. | Scrieți un program care citește un număr natural n și care să calculeze și să afișeze suma S a tuturor numerelor obținute prin rearanjarea cifrelor lui n. Numărul n are toate cifrele distincte. | ||
Line 27: | Line 29: | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
import itertools | |||
n = int(input("Introduceți un număr cu cifre distincte: ")) | n = int(input("Introduceți un număr cu cifre distincte: ")) | ||
suma = 0 | suma = 0 |
Latest revision as of 12:35, 20 May 2023
Sursa: [1]
Cerința[edit | edit source]
Scrieți un program care citește un număr natural n și care să calculeze și să afișeze suma S a tuturor numerelor obținute prin rearanjarea cifrelor lui n. Numărul n are toate cifrele distincte.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Programul va afișa pe ecran numărul S, reprezentând suma cerută.
Restricții și precizări[edit | edit source]
n are cel mult 9 cifre și are cifrele distincte.
Exemplu[edit | edit source]
- Intrare
- 123
- Ieșire
- 1332
Explicație[edit | edit source]
Numere obținute din 123 prin amestecarea cifrelor sunt 123, 132, 213, 231, 312 și 321, iar suma lor este 1332.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line> import itertools
n = int(input("Introduceți un număr cu cifre distincte: ")) suma = 0 lungime_n = len(str(n))
- Generăm toate permutările distincte ale cifrelor numărului n
permutari = set(itertools.permutations(str(n), lungime_n))
- Iterăm prin fiecare permutare și adăugăm numărul la suma
for permutare in permutari:
numar = int("".join(permutare)) suma += numar
- Afișăm suma
print("Suma tuturor numerelor obținute prin rearanjarea cifrelor lui", n, "este:", suma) </syntaxhighlight>