3905 - Suma Perm n9: Difference between revisions

From Bitnami MediaWiki
Pop Giulia (talk | contribs)
Pagină nouă: n = int(input("Introduceți un număr cu cifre distincte: ")) suma = 0 lungime_n = len(str(n)) permutari = set(itertools.permutations(str(n), lungime_n)) for permutare in permutari: numar = int("".join(permutare)) suma += numar print("Suma tuturor numerelor obținute prin rearanjarea cifrelor lui", n, "este:", suma)
 
Pop Giulia (talk | contribs)
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 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
lungime_n = len(str(n))
lungime_n = len(str(n))
# Generăm toate permutările distincte ale cifrelor numărului n
permutari = set(itertools.permutations(str(n), lungime_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:
for permutare in permutari:
     numar = int("".join(permutare))
     numar = int("".join(permutare))
     suma += numar
     suma += numar
# 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>

Latest revision as of 12:35, 20 May 2023

Sursa: [1]

Cerința[edit]

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]

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

Date de ieșire[edit]

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

Restricții și precizări[edit]

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

Exemplu[edit]

Intrare
123
Ieșire
1332

Explicație[edit]

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


Rezolvare[edit]

<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>