1153 - -Verif Nr Par Cifre Div Imp

From Bitnami MediaWiki
Revision as of 14:29, 2 January 2024 by Andrada378 (talk | contribs)

Cerința

Se dă un şir cu n elemente, numere naturale. Folosind metoda Divide et Impera să se verifice dacă toate elementele şirului au număr par de cifre.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale şirului, separate prin spaţii.

Date de ieșire

Programul afișează pe ecran mesajul DA, dacă toate elementele şirului au număr par de cifre, respectiv NU în caz contrar.

Restricții si precizări:

1 ≤ n ≤ 100

elementele şirului sunt numere naturale nenule cu cel mult 9 cifre

Exemplu

Date de intrare

5

2820 82 65 1026 84

Date de iesire

DA

Rezolvare

<syntaxhighlight lang="python"> def citire():

   n = int(input())
   v = [int(input()) for _ in range(n)]
   return n, v

def nrcif(st, dr, v):

   if st == dr:
       cnt = 1
       while v[st] > 9:
           v[st] //= 10
           cnt += 1
       return cnt % 2 == 0
   else:
       m = (st + dr) // 2
       R1 = nrcif(st, m, v)
       R2 = nrcif(m + 1, dr, v)
       return R1 and R2

def main():

   n, v = citire()
   if nrcif(0, n - 1, v):
       print("DA")
   else:
       print("NU")

if __name__ == "__main__":

   main()

</syntaxhighlight>