3905 - Suma Perm n9

De la Universitas MediaWiki

Sursa: [1]

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

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)