1306 - SumChef: Difference between revisions
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 39: | Line 39: | ||
def numere(vector, numar): | def numere(vector, numar): | ||
suma = 0 | |||
for i in range(numar): | for i in range(numar): | ||
element = vector[i] | |||
while | while element != 0: | ||
suma += (element % 10) ** 3 | |||
element //= 10 | |||
print( | print(suma) | ||
def conform_restrictiilor(): | def conform_restrictiilor(numar, vector): | ||
if numar < 1 or numar > 2000000: | if numar < 1 or numar > 2000000: | ||
print("Datele nu sunt comform restricțiilor impuse.") | print("Datele nu sunt comform restricțiilor impuse.") | ||
return False | |||
for x in vector: | for x in vector: | ||
if x > 9999 or x < 1: | if x > 9999 or x < 1: | ||
print("Datele nu sunt comform restricțiilor impuse.") | print("Datele nu sunt comform restricțiilor impuse.") | ||
return False | |||
print("Datele sunt corecte.") | print("Datele sunt corecte.") | ||
return | return True | ||
if __name__ == '__main__': | if __name__ == '__main__': | ||
vector, | numar = int(input()) | ||
vector = list(map(int, input().split())) | |||
if conform_restrictiilor(numar, vector) is True: | |||
numere(vector, numar) | |||
</syntaxhighlight> | |||
==Explicaţie cod== | |||
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. |
Latest revision as of 13:31, 30 April 2023
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.