0996 - Div 3: Difference between revisions

From Bitnami MediaWiki
No edit summary
No edit summary
Line 1: Line 1:
== Cerință ==
== Cerință ==
Pe prima linie a fişierului div3.in se află numărul n, iar pe a doua linie n numere naturale.
Pe prima linie a fişierului div3.in se află numărul '''n''', iar pe a doua linie '''n numere naturale'''.
== Date de intrare ==
== Date de intrare ==
Pe prima linie a fişierului div3.in se află numărul n, iar pe a doua linie n numere naturale.
Pe prima linie a fişierului div3.in se află numărul '''n''', iar pe a doua linie '''n numere naturale'''.
== Date de ieșire ==
== Date de ieșire ==
Pe prima linie a fişierului div3.out se vor afla elementele şirului dat pentru care suma cifrelor este divizibilă cu 3, separate printr-un spațiu.
Pe prima linie a fişierului div3.out se vor afla elementele şirului dat pentru care suma cifrelor este divizibilă cu 3, separate printr-un spațiu.
== Restricții de precizări ==
== Restricții de precizări ==
*1 ⩽ n ⩽ 1000
*1 ⩽ '''n''' ⩽ 1000
*elementele şirului vor avea cel mult 9 cifre
*elementele şirului vor avea cel mult 9 cifre
== Exemplul 1==
== Exemplul 1==
Line 23: Line 23:
: 12 90
: 12 90
== Rezolvare ver. 1 ==
== Rezolvare ver. 1 ==
<syntaxhighlight lang="python" line="1" start="1">
def validare(n, numere):
    return all.isdigit() and 1 <= int(n), int(numere) <= 1000
def suma_cifre(n, numere):
    suma = 0
    while n > 0:
        suma += n % 10  # adăugăm cifra unităţilor la suma cifrelor
        n //= 10  # eliminăm cifra unităţilor
    return suma
    for x in numere:  # parcurgem şirul de numere
        if suma_cifre(x) % 3 == 0:  # verificăm dacă suma cifrelor este divizibilă cu 3
            print(x)  # afişăm numărul dacă este divizibil cu 3
if __name__ == "__main__":
    n = int(input())  # citim numărul n
    numere = list(map(int, input().split()))  # citim şirul de numere
if validare(n, numere):
    n = int(n)
    numere = int(numere)
    print("Datele introduse corespund restricțiilor impuse.")
    suma_cifre(n, numere)
else:
    print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>

Revision as of 07:04, 11 April 2023

Cerință

Pe prima linie a fişierului div3.in se află numărul n, iar pe a doua linie n numere naturale.

Date de intrare

Pe prima linie a fişierului div3.in se află numărul n, iar pe a doua linie n numere naturale.

Date de ieșire

Pe prima linie a fişierului div3.out se vor afla elementele şirului dat pentru care suma cifrelor este divizibilă cu 3, separate printr-un spațiu.

Restricții de precizări

  • 1 ⩽ n ⩽ 1000
  • elementele şirului vor avea cel mult 9 cifre

Exemplul 1

Intrare
7
124 51 231 7 24 31 5
Ieșire
Datele introduse corespund restricțiilor impuse.
51 231 24

Exemplul 2

Intrare
5
12 34 56 78 90
Ieșire
Datele introduse corespund restricțiilor impuse.
12 90

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare(n, numere):

   return all.isdigit() and 1 <= int(n), int(numere) <= 1000


def suma_cifre(n, numere):

   suma = 0
   while n > 0:
       suma += n % 10  # adăugăm cifra unităţilor la suma cifrelor
       n //= 10  # eliminăm cifra unităţilor
   return suma
   for x in numere:  # parcurgem şirul de numere
       if suma_cifre(x) % 3 == 0:  # verificăm dacă suma cifrelor este divizibilă cu 3
           print(x)  # afişăm numărul dacă este divizibil cu 3


if __name__ == "__main__":

   n = int(input())  # citim numărul n
   numere = list(map(int, input().split()))  # citim şirul de numere


if validare(n, numere):

   n = int(n)
   numere = int(numere)
   print("Datele introduse corespund restricțiilor impuse.")
   suma_cifre(n, numere)

else:

   print("Datele introduse nu corespund restricțiilor impuse.")

</syntaxhighlight>