3905 - Suma Perm n9: Diferență între versiuni
De la Universitas MediaWiki
Fără descriere a modificării |
Fără descriere a modificării |
||
(Nu s-au afișat 3 versiuni intermediare efectuate de alți 2 utilizatori) | |||
Linia 1: | Linia 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/3905/suma-perm-n9] | |||
==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: ")) | n = int(input("Introduceți un număr cu cifre distincte: ")) | ||
suma = 0 | suma = 0 | ||
Linia 13: | Linia 45: | ||
# 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> |
Versiunea curentă din 20 mai 2023 12:35
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)