3905 - Suma Perm n9: Difference between revisions

From Bitnami MediaWiki
Pop Giulia (talk | contribs)
No edit summary
Pop Giulia (talk | contribs)
Line 26: Line 26:


==Rezolvare==
==Rezolvare==
 
<syntaxhighlight lang="python" line>
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
Line 41: Line 41:
# Afișăm suma
# Afișăm suma
print("Suma tuturor numerelor obținute prin rearanjarea cifrelor lui", n, "este:", suma)
print("Suma tuturor numerelor obținute prin rearanjarea cifrelor lui", n, "este:", suma)
</syntaxhighlight>

Revision as of 09:46, 30 April 2023

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.

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran numărul S, reprezentând suma cerută.

Restricții și precizări

n are cel mult 9 cifre și are cifrele distincte.

Exemplu

Intrare
123
Ieșire
1332

Explicație

Numere obținute din 123 prin amestecarea cifrelor sunt 123, 132, 213, 231, 312 și 321, iar suma lor este 1332.


Rezolvare

<syntaxhighlight lang="python" line> n = int(input("Introduceți un număr cu cifre distincte: ")) suma = 0 lungime_n = len(str(n))

  1. Generăm toate permutările distincte ale cifrelor numărului n

permutari = set(itertools.permutations(str(n), lungime_n))

  1. Iterăm prin fiecare permutare și adăugăm numărul la suma

for permutare in permutari:

   numar = int("".join(permutare))
   suma += numar
  1. Afișăm suma

print("Suma tuturor numerelor obținute prin rearanjarea cifrelor lui", n, "este:", suma) </syntaxhighlight>