0493 - Constr

From Bitnami MediaWiki
Revision as of 13:39, 23 March 2023 by Csatari Mălina (talk | contribs) (Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/493/constr 0493 - Constr] ---- == Cerinţa == Se dă un vector '''x''' cu '''n''' elemente, numere naturale. Să se construiască un alt vector, '''y''', cu proprietatea că '''y[i]''' este egal cu restul împărțirii lui '''x[i]''' la suma cifrelor lui '''x[i]'''. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale, reprezentând elementele vectorului. == Date de ieșire == Dac...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Sursa: 0493 - Constr


Cerinţa

Se dă un vector x cu n elemente, numere naturale. Să se construiască un alt vector, y, cu proprietatea că y[i] este egal cu restul împărțirii lui x[i] la suma cifrelor lui x[i].

Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt introduse corect.", apoi pe un rând nou afișează elementele vectorului y, separate prin exact un spațiu. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".

Restricţii şi precizări

  • 1 ⩽ n ⩽ 200
  • elementele vectorului vor fi cuprinse între 1 și 1.000.000.000

Exemple

Exemplul 1

Intrare
6
50 1815 15 289 35 40
Ieșire
Datele sunt introduse corect.
0 0 3 4 3 0

Exemplul 2

Intrare
5
10 2 -3 4 5
Ieșire
Datele nu corespund restricțiilor impuse.


Rezolvare

<syntaxhighlight lang="python" line>

  1. 0493

def construirea_vectorului_y(x, n):

   y = []
   for i in range(n):
       a, s = x[i], 0
       while a:
           s += a % 10
           a //= 10
       y.append(x[i] % s)
   for i in range(n):
       print(y[i], end=" ")


def citire_conform_restrictiilor():

   n = int(input())
   if n < 1 or n > 200:
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   x = list(map(int, input().split()))
   for elem in x:
       if elem < 0 or elem > 1000000000:
           print("Datele nu corespund restricțiilor impuse.")
           exit()
   if n != len(x):
       print("Datele nu corespund restricțiilor impuse.")
       exit()
   print("Datele sunt introduse corect.")
   return x, n


if __name__ == '__main__':

   x, n = citire_conform_restrictiilor()
   construirea_vectorului_y(x, n)







</syntaxhighlight>