0989 - Sum Perm
Cerința[edit | edit source]
Se dau n
cifre zecimale: a1
, a2
, … , an
. Determinaţi suma: S = a1a2...an + ana1...an-1 + a2a3...ana1
, în care fiecare termen este obţinut prin permutarea circulară spre dreapta a cifrelor termenului precedent cu o poziţie.
Date de intrare[edit | edit source]
Fișierul de intrare sumperm.in
conține pe prima linie numărul n
, iar pe a doua linie cele n
cifre separate prin spații.
Date de ieșire[edit | edit source]
Pe ecran se va afișa mesajul: "Datele de intrare corespund restricțiilor impuse."
Pe următoarea linie se va afișa numărul S
, reprezentând suma calculată.
În cazul în care datele introduse de la tastatură nu îndeplinesc cerințele enunțate, pe ecran se va afișa mesajul "Datele de intrare nu corespund restricțiilor impuse."
Restricții și precizări[edit | edit source]
2 ≤ n ≤ 9
Exemplu 1[edit | edit source]
- Intrare
- 3
- 2 5 4
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 1221
Explicație[edit | edit source]
S=254 + 425 + 542 =1221
.
Exemplu 2[edit | edit source]
- Intrare
- 1
- 2 5 4
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0989 Sum Perm
def conditii(n, cifre):
return n == len(cifre) and 2 <= n <= 9
def sumperm(cifre):
# Inițializăm suma ca fiind concatenarea cifrelor din vectorul cifre suma = int("".join([cif for cif in cifre]))
# Iterăm vectorul cifre de n ori, unde n = lungimea vectorului-1 # Îl rotim cu 1 mai puțin decât lungimea sa pentru a nu repeta suma inițială for i in range(len(cifre) - 1): # append() este o funcție built-in care adaugă un element la sfârșitul unui vector # pop() este o funcție built-in care elimină un element dintr-un vector și returnează valoarea sa cifre.append(cifre.pop(0)) # Concatenăm cifrele din vectorul modificat și le convertim la int, apoi le adunăm la suma inițială suma += int("".join([cif for cif in cifre]))
print(suma)
if __name__ == "__main__":
n = int(input()) cifre = [x for x in input().split()] if not conditii(n, cifre): print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.") sumperm(cifre)
</syntaxhighlight>