2290 - Oglindite: Difference between revisions

From Bitnami MediaWiki
Pop Giulia (talk | contribs)
Pagină nouă: ==Cerința== Se dau n numere naturale. Afișați numărul pentru care diferența în valoare absolută dintre el și oglinditul său este minimă. Dacă există mai multe asemenea numere, afișați-l pe cel mai mic. ==Date de intrare== Programul citește de la tastatură numărul n, iar apoi n numere naturale. ==Date de ieșire== Programul va afișa pe ecran numărul determinat x. ==Restricții și precizări== 1 ≤ n ≤ 1000 cele n numere citite vor fi mai mici decât 1...
 
Pop Giulia (talk | contribs)
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/2290/oglindite]
==Cerința==
==Cerința==
Se dau n numere naturale. Afișați numărul pentru care diferența în valoare absolută dintre el și oglinditul său este minimă. Dacă există mai multe asemenea numere, afișați-l pe cel mai mic.
Se dau n numere naturale. Afișați numărul pentru care diferența în valoare absolută dintre el și oglinditul său este minimă. Dacă există mai multe asemenea numere, afișați-l pe cel mai mic.
Line 26: Line 28:
Diferența minimă este 495 și se obține pentru 601
Diferența minimă este 495 și se obține pentru 601
==Solutie==
==Solutie==
<syntaxhighlight lang="python" line>
n = int(input())
n = int(input())
min_diff = float('inf')
min_diff = float('inf')
Line 39: Line 42:


print(found_num)
print(found_num)
</syntaxhighlight>

Latest revision as of 12:52, 20 May 2023

Sursa: [1]

Cerința[edit | edit source]

Se dau n numere naturale. Afișați numărul pentru care diferența în valoare absolută dintre el și oglinditul său este minimă. Dacă există mai multe asemenea numere, afișați-l pe cel mai mic.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n, iar apoi n numere naturale.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran numărul determinat x.

Restricții și precizări[edit | edit source]

1 ≤ n ≤ 1000 cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu:[edit | edit source]

Intrare

4 127 964 801 601 Ieșire

601

Explicație[edit | edit source]

oglinditul lui 127 este 721, iar diferența este 594 oglinditul lui 964 este 469, iar diferența este 495 oglinditul lui 801 este 108, iar diferența este 693 oglinditul lui 601 este 106, iar diferența este 495 Diferența minimă este 495 și se obține pentru 601

Solutie[edit | edit source]

<syntaxhighlight lang="python" line> n = int(input()) min_diff = float('inf') found_num = float('inf')

for i in range(n):

   num = int(input())
   reversed_num = int(str(num)[::-1])
   diff = abs(num - reversed_num)
   if diff < min_diff or (diff == min_diff and num < found_num):
       min_diff = diff
       found_num = num

print(found_num) </syntaxhighlight>