<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2415_-_Nr_Pal</id>
	<title>2415 - Nr Pal - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=2415_-_Nr_Pal"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2415_-_Nr_Pal&amp;action=history"/>
	<updated>2026-05-01T09:56:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2415_-_Nr_Pal&amp;diff=3853&amp;oldid=prev</id>
		<title>Tamas Claudia at 18:27, 19 April 2023</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2415_-_Nr_Pal&amp;diff=3853&amp;oldid=prev"/>
		<updated>2023-04-19T18:27:39Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:27, 19 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l77&quot;&gt;Line 77:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 77:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Explicație rezolvare ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Explicație rezolvare ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     Funcția &amp;#039;&amp;#039;&amp;#039;numar_palindroame(a, b)&amp;#039;&amp;#039;&amp;#039; primește două argumente a și b, reprezentând capetele intervalului, și calculează numărul de palindroame din intervalul dat. Inițial, variabila count este setată la 0, apoi se parcurge intervalul de la a la b + 1. Pentru fiecare număr în interval, se verifică dacă reprezentarea sa sub formă de șir de caractere este aceeași cu șirul obținut prin inversarea acestuia (str(i)[::-1] reprezintă șirul obținut prin inversarea șirului str(i)), caz în care variabila count este incrementată. Funcția returnează valoarea finală a variabilei count.&amp;lt;br&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     Funcția &amp;#039;&amp;#039;&amp;#039;numar_palindroame(a, b)&amp;#039;&amp;#039;&amp;#039; primește două argumente a și b, reprezentând capetele intervalului, și calculează numărul de palindroame din intervalul dat. Inițial, variabila count este setată la 0, apoi se parcurge intervalul de la a la b + 1. Pentru fiecare număr în interval, se verifică dacă reprezentarea sa sub formă de șir de caractere este aceeași cu șirul obținut prin inversarea acestuia (str(i)[::-1] reprezintă șirul obținut prin inversarea șirului str(i)), caz în care variabila count este incrementată. Funcția returnează valoarea finală a variabilei count.&amp;lt;br&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    Funcția &#039;&#039;&#039;citire_date(nume_fisier)&#039;&#039;&#039; primește un singur argument nume_fisier, reprezentând numele fișierului de intrare, și returnează o listă de perechi de forma (a, b), reprezentând intervalul specificat în fiecare linie a fișierului de intrare. Funcția deschide fișierul de intrare și citește numărul de întrebări, apoi parcurge liniile rămase din fișier și extrage capetele intervalului din fiecare linie cu ajutorul funcției split(). Capetele intervalului sunt convertite la numere întregi cu ajutorul funcției int() și sunt adăugate la o listă de intervale. Funcția returnează lista de intervale.&amp;lt;br&amp;gt;    Funcția &#039;&#039;&#039;main()&#039;&#039;&#039; reprezintă punctul de intrare în program. În primul rând, se încearcă citirea datelor de intrare folosind funcția &#039;&#039;&#039;citire_date()&#039;&#039;&#039;. Dacă datele sunt citite cu succes, se afișează un mesaj de confirmare și se deschide fișierul de ieșire. Pentru fiecare interval din lista de intervale, se calculează numărul de palindroame din interval folosind funcția &#039;&#039;&#039;numar_palindroame()&#039;&#039;&#039; și se scrie valoarea în fișierul de ieșire. Dacă apare o excepție de tipul ValueError în timpul citirii datelor de intrare, se afișează un mesaj de eroare.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    Funcția &#039;&#039;&#039;citire_date(nume_fisier)&#039;&#039;&#039; primește un singur argument nume_fisier, reprezentând numele fișierului de intrare, și returnează o listă de perechi de forma (a, b), reprezentând intervalul specificat în fiecare linie a fișierului de intrare. Funcția deschide fișierul de intrare și citește numărul de întrebări, apoi parcurge liniile rămase din fișier și extrage capetele intervalului din fiecare linie cu ajutorul funcției split(). Capetele intervalului sunt convertite la numere întregi cu ajutorul funcției int() și sunt adăugate la o listă de intervale. Funcția returnează lista de intervale.&amp;lt;br&amp;gt;  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    Funcția &#039;&#039;&#039;main()&#039;&#039;&#039; reprezintă punctul de intrare în program. În primul rând, se încearcă citirea datelor de intrare folosind funcția &#039;&#039;&#039;citire_date()&#039;&#039;&#039;. Dacă datele sunt citite cu succes, se afișează un mesaj de confirmare și se deschide fișierul de ieșire. Pentru fiecare interval din lista de intervale, se calculează numărul de palindroame din interval folosind funcția &#039;&#039;&#039;numar_palindroame()&#039;&#039;&#039; și se scrie valoarea în fișierul de ieșire. Dacă apare o excepție de tipul ValueError în timpul citirii datelor de intrare, se afișează un mesaj de eroare.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
	<entry>
		<id>https://wiki.universitas.ro/index.php?title=2415_-_Nr_Pal&amp;diff=3852&amp;oldid=prev</id>
		<title>Tamas Claudia: Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/2415/nr-pal] ---- == Cerinţa == Se dau &#039;&#039;&#039;numar&#039;&#039;&#039; întrebări de forma: Câte palindromuri există în intervalul [a, b]?, unde a și b sunt numere naturale date, cu a ≤ b. == Date de intrare == Fișierul de intrare &#039;&#039;&#039;nr_pal.in&#039;&#039;&#039; conține pe prima linie numărul natural nenul &#039;&#039;&#039;numar&#039;&#039;&#039;, iar pe următoarele &#039;&#039;&#039;numar&#039;&#039;&#039; linii, &#039;&#039;&#039;numar&#039;&#039;&#039; perechii de forma &#039;&#039;&#039;a b&#039;&#039;&#039; ce reprezintă capetele intervalelor. == Date de ieșire ==  Dacă...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=2415_-_Nr_Pal&amp;diff=3852&amp;oldid=prev"/>
		<updated>2023-04-19T18:27:10Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/2415/nr-pal] ---- == Cerinţa == Se dau &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039; întrebări de forma: Câte palindromuri există în intervalul [a, b]?, unde a și b sunt numere naturale date, cu a ≤ b. == Date de intrare == Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;nr_pal.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numărul natural nenul &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039; linii, &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039; perechii de forma &amp;#039;&amp;#039;&amp;#039;a b&amp;#039;&amp;#039;&amp;#039; ce reprezintă capetele intervalelor. == Date de ieșire ==  Dacă...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Sursa: [https://www.pbinfo.ro/probleme/2415/nr-pal]&lt;br /&gt;
----&lt;br /&gt;
== Cerinţa ==&lt;br /&gt;
Se dau &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039; întrebări de forma: Câte palindromuri există în intervalul [a, b]?, unde a și b sunt numere naturale date, cu a ≤ b.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Fișierul de intrare &amp;#039;&amp;#039;&amp;#039;nr_pal.in&amp;#039;&amp;#039;&amp;#039; conține pe prima linie numărul natural nenul &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039;, iar pe următoarele &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039; linii, &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039; perechii de forma &amp;#039;&amp;#039;&amp;#039;a b&amp;#039;&amp;#039;&amp;#039; ce reprezintă capetele intervalelor.&lt;br /&gt;
== Date de ieșire == &lt;br /&gt;
Dacă datele sunt introduse corect, pe ecran se va afișa: &lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele sunt introduse corect.&amp;quot;&amp;#039;&amp;#039;&amp;#039;, apoi, fișierul de ieșire &amp;#039;&amp;#039;&amp;#039;nr_pal.out&amp;#039;&amp;#039;&amp;#039; va conține răspunsurile la cele &amp;#039;&amp;#039;&amp;#039;numar&amp;#039;&amp;#039;&amp;#039; întrebări, fiecare pe câte un rând.. În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: &amp;#039;&amp;#039;&amp;#039;&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;&amp;#039;&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Restricţii şi precizări ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; &amp;lt; &amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039; ≤ &amp;#039;&amp;#039;&amp;#039;100000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;0&amp;#039;&amp;#039;&amp;#039; ≤ &amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039; ≤ &amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039; ≤ &amp;#039;&amp;#039;&amp;#039;1.000.000.000&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
== Exemple ==&lt;br /&gt;
===Exemplul 1===&lt;br /&gt;
; nr_pal.in&lt;br /&gt;
: 2&lt;br /&gt;
: 5 23&lt;br /&gt;
: 1 255&lt;br /&gt;
; Ecran&lt;br /&gt;
: Datele sunt introduse corect.&lt;br /&gt;
; nr_pal.out&lt;br /&gt;
: 7&lt;br /&gt;
: 34&lt;br /&gt;
&lt;br /&gt;
== Explicație ==&lt;br /&gt;
La prima întrebare în intervalul &amp;#039;&amp;#039;&amp;#039;[5,23]&amp;#039;&amp;#039;&amp;#039; exista &amp;#039;&amp;#039;&amp;#039;7&amp;#039;&amp;#039;&amp;#039; palindromuri: &amp;#039;&amp;#039;&amp;#039;5,6,7,8,9,11,22&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rezolvare == &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
# 2415&lt;br /&gt;
&lt;br /&gt;
def numar_palindroame(a, b):&lt;br /&gt;
    count = 0&lt;br /&gt;
    for i in range(a, b + 1):&lt;br /&gt;
        if str(i) == str(i)[::-1]:&lt;br /&gt;
            count += 1&lt;br /&gt;
    return count&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def citire_date(nume_fisier):&lt;br /&gt;
    with open(nume_fisier, &amp;#039;r&amp;#039;) as f:&lt;br /&gt;
        numar = int(f.readline())&lt;br /&gt;
        intervale = []&lt;br /&gt;
        for i in range(numar):&lt;br /&gt;
            a, b = map(int, f.readline().split())&lt;br /&gt;
            intervale.append((a, b))&lt;br /&gt;
    return intervale&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        intervale = citire_date(&amp;#039;nr_pal.in&amp;#039;)&lt;br /&gt;
        print(&amp;quot;Datele sunt introduse corect.&amp;quot;)&lt;br /&gt;
        with open(&amp;#039;nr_pal.out&amp;#039;, &amp;#039;w&amp;#039;) as f:&lt;br /&gt;
            for a, b in intervale:&lt;br /&gt;
                f.write(str(numar_palindroame(a, b)) + &amp;#039;\n&amp;#039;)&lt;br /&gt;
    except ValueError:&lt;br /&gt;
        print(&amp;quot;Datele nu corespund restricțiilor impuse.&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Explicație rezolvare ==&lt;br /&gt;
    Funcția &amp;#039;&amp;#039;&amp;#039;numar_palindroame(a, b)&amp;#039;&amp;#039;&amp;#039; primește două argumente a și b, reprezentând capetele intervalului, și calculează numărul de palindroame din intervalul dat. Inițial, variabila count este setată la 0, apoi se parcurge intervalul de la a la b + 1. Pentru fiecare număr în interval, se verifică dacă reprezentarea sa sub formă de șir de caractere este aceeași cu șirul obținut prin inversarea acestuia (str(i)[::-1] reprezintă șirul obținut prin inversarea șirului str(i)), caz în care variabila count este incrementată. Funcția returnează valoarea finală a variabilei count.&amp;lt;br&amp;gt; &lt;br /&gt;
   Funcția &amp;#039;&amp;#039;&amp;#039;citire_date(nume_fisier)&amp;#039;&amp;#039;&amp;#039; primește un singur argument nume_fisier, reprezentând numele fișierului de intrare, și returnează o listă de perechi de forma (a, b), reprezentând intervalul specificat în fiecare linie a fișierului de intrare. Funcția deschide fișierul de intrare și citește numărul de întrebări, apoi parcurge liniile rămase din fișier și extrage capetele intervalului din fiecare linie cu ajutorul funcției split(). Capetele intervalului sunt convertite la numere întregi cu ajutorul funcției int() și sunt adăugate la o listă de intervale. Funcția returnează lista de intervale.&amp;lt;br&amp;gt;    Funcția &amp;#039;&amp;#039;&amp;#039;main()&amp;#039;&amp;#039;&amp;#039; reprezintă punctul de intrare în program. În primul rând, se încearcă citirea datelor de intrare folosind funcția &amp;#039;&amp;#039;&amp;#039;citire_date()&amp;#039;&amp;#039;&amp;#039;. Dacă datele sunt citite cu succes, se afișează un mesaj de confirmare și se deschide fișierul de ieșire. Pentru fiecare interval din lista de intervale, se calculează numărul de palindroame din interval folosind funcția &amp;#039;&amp;#039;&amp;#039;numar_palindroame()&amp;#039;&amp;#039;&amp;#039; și se scrie valoarea în fișierul de ieșire. Dacă apare o excepție de tipul ValueError în timpul citirii datelor de intrare, se afișează un mesaj de eroare.&lt;/div&gt;</summary>
		<author><name>Tamas Claudia</name></author>
	</entry>
</feed>