1306 - SumChef
Sursa: - SumChef
Cerinţa[edit | edit source]
Fiind dat un şir cu numar elemente numere naturale, să se calculeze suma s cuburilor cifrelor tuturor numerelor din şir.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul numar, iar apoi numar numere naturale, separate prin spaţii, reprezentând elementele vectorului vector.
Date de ieșire[edit | edit source]
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.", iar apoi se afișează pe ecran numărul s, reprezentând suma cuburilor cifrelor tuturor numerelor din şir. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".
Restricţii şi precizări[edit | edit source]
- 1 ⩽ numar ⩽ 2.000.000
- numerele din şir au cel mult 4 cifre
Exemple[edit | edit source]
Exemplul 1[edit | edit source]
- Intrare
- 3
- 24 120 51
- Ieșire
- Datele sunt corecte.
- 207
Exemplul 2[edit | edit source]
- Intrare
- 10
- 100 1000 100 20 1 20 30 10 98 99999
- Ieșire
- Datele nu corespund restricțiilor impuse.
Exemplul 3[edit | edit source]
- Intrare
- 5
- 1 11 111 1111 101
- Ieșire
- Datele sunt corecte.
- 12
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line>
- 1306 SumChef
def numere(vector, numar):
suma = 0 for i in range(numar): element = vector[i] while element != 0: suma += (element % 10) ** 3 element //= 10 print(suma)
def conform_restrictiilor(numar, vector):
if numar < 1 or numar > 2000000: print("Datele nu sunt comform restricțiilor impuse.") return False for x in vector: if x > 9999 or x < 1: print("Datele nu sunt comform restricțiilor impuse.") return False print("Datele sunt corecte.") return True
if __name__ == '__main__':
numar = int(input()) vector = list(map(int, input().split())) if conform_restrictiilor(numar, vector) is True: numere(vector, numar)
</syntaxhighlight>
Explicaţie cod[edit | edit source]
Acest cod are rolul de a calcula suma cuburilor cifrelor fiecarui element dintr-un vector dat.
Funcția numere(vector, numar):
Parametrii de intrare: vector este un vector de numere întregi și numar este numărul de elemente din vector. Funcționare: Parcurge fiecare element din vector și calculează suma cuburilor cifrelor fiecărui element. Apoi, adaugă această sumă la suma totală și o afișează la final. Rezultatul returnat: Funcția nu returnează nicio valoare, ci afișează direct suma cuburilor cifrelor. Funcția conform_restrictiilor(numar, vector):
Parametrii de intrare: numar este numărul de elemente din vector și vector este vectorul de numere întregi. Funcționare: Verifică dacă datele intră în restricțiile impuse în enunț, adică numar trebuie să fie între 1 și 2.000.000 și fiecare element din vector trebuie să fie între 1 și 9999. Rezultatul returnat: Dacă datele sunt conforme restricțiilor, funcția afișează "Datele sunt corecte." și returnează True. În caz contrar, afișează "Datele nu sunt conforme restricțiilor impuse." și returnează False. Blocul principal:
Citim numărul de elemente din vector și apoi vectorul în sine. Apelăm funcția conform_restrictiilor pentru a verifica datele. Dacă datele sunt corecte, apelăm funcția numere pentru a calcula suma cuburilor cifrelor.