3905 - Suma Perm n9: Difference between revisions

From Bitnami MediaWiki
Pop Giulia (talk | contribs)
Line 27: Line 27:
==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

Revision as of 14:35, 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> import itertools

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>