<?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=1291_-_CifreGen4</id>
	<title>1291 - CifreGen4 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.universitas.ro/index.php?action=history&amp;feed=atom&amp;title=1291_-_CifreGen4"/>
	<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1291_-_CifreGen4&amp;action=history"/>
	<updated>2026-05-01T20:05:15Z</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=1291_-_CifreGen4&amp;diff=10061&amp;oldid=prev</id>
		<title>Benzar Ioan: Pagină nouă: == Cerința == Se dau două numere n m. Să se genereze toate numerele cu exact n cifre mai mici decât m cu proprietatea că diferența în valoare absolută dintre oricare două cifre consecutive este cel puțin 2. == Date de intrare == Programul citește de la tastatură numerele n m. == Date de ieșire == Programul va afișa pe ecran numerele generate, câte unul pe linie, în ordine crescătoare. == Restricții și precizări == *1 ≤ n ≤ 7 *0 &lt; m &lt; 6 == Exemplu 1 ==...</title>
		<link rel="alternate" type="text/html" href="https://wiki.universitas.ro/index.php?title=1291_-_CifreGen4&amp;diff=10061&amp;oldid=prev"/>
		<updated>2024-06-03T18:48:24Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: == Cerința == Se dau două numere n m. Să se genereze toate numerele cu exact n cifre mai mici decât m cu proprietatea că diferența în valoare absolută dintre oricare două cifre consecutive este cel puțin 2. == Date de intrare == Programul citește de la tastatură numerele n m. == Date de ieșire == Programul va afișa pe ecran numerele generate, câte unul pe linie, în ordine crescătoare. == Restricții și precizări == *1 ≤ n ≤ 7 *0 &amp;lt; m &amp;lt; 6 == Exemplu 1 ==...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Cerința ==&lt;br /&gt;
Se dau două numere n m. Să se genereze toate numerele cu exact n cifre mai mici decât m cu proprietatea că diferența în valoare absolută dintre oricare două cifre consecutive este cel puțin 2.&lt;br /&gt;
== Date de intrare ==&lt;br /&gt;
Programul citește de la tastatură numerele n m.&lt;br /&gt;
== Date de ieșire ==&lt;br /&gt;
Programul va afișa pe ecran numerele generate, câte unul pe linie, în ordine crescătoare.&lt;br /&gt;
== Restricții și precizări ==&lt;br /&gt;
*1 ≤ n ≤ 7&lt;br /&gt;
*0 &amp;lt; m &amp;lt; 6&lt;br /&gt;
== Exemplu 1 ==&lt;br /&gt;
;Intrare&lt;br /&gt;
3 4&lt;br /&gt;
;Iesire&lt;br /&gt;
130&amp;lt;br&amp;gt;&lt;br /&gt;
131&amp;lt;br&amp;gt;&lt;br /&gt;
202&amp;lt;br&amp;gt;&lt;br /&gt;
203&amp;lt;br&amp;gt;&lt;br /&gt;
302&amp;lt;br&amp;gt;&lt;br /&gt;
303&amp;lt;br&amp;gt;&lt;br /&gt;
313&lt;br /&gt;
== Rezolvare ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def read_input():&lt;br /&gt;
    n, m = map(int, input().strip().split())&lt;br /&gt;
    return n, m&lt;br /&gt;
&lt;br /&gt;
def write_output(numbers):&lt;br /&gt;
    for number in numbers:&lt;br /&gt;
        print(number)&lt;br /&gt;
&lt;br /&gt;
def is_valid(number, n, m):&lt;br /&gt;
    # Verifică dacă numărul are exact n cifre și fiecare cifră este mai mică decât m&lt;br /&gt;
    if len(number) != n:&lt;br /&gt;
        return False&lt;br /&gt;
    for digit in number:&lt;br /&gt;
        if int(digit) &amp;gt;= m:&lt;br /&gt;
            return False&lt;br /&gt;
    # Verifică dacă diferența dintre orice două cifre consecutive este cel puțin 2&lt;br /&gt;
    for i in range(1, len(number)):&lt;br /&gt;
        if abs(int(number[i]) - int(number[i - 1])) &amp;lt; 2:&lt;br /&gt;
            return False&lt;br /&gt;
    return True&lt;br /&gt;
&lt;br /&gt;
def generate_numbers(n, m, current_number, numbers):&lt;br /&gt;
    if len(current_number) == n:&lt;br /&gt;
        if is_valid(current_number, n, m):&lt;br /&gt;
            numbers.append(current_number)&lt;br /&gt;
        return&lt;br /&gt;
    for digit in range(0, m):&lt;br /&gt;
        if len(current_number) == 0 and digit == 0:&lt;br /&gt;
            continue&lt;br /&gt;
        if len(current_number) == 0 or abs(int(current_number[-1]) - digit) &amp;gt;= 2:&lt;br /&gt;
            generate_numbers(n, m, current_number + str(digit), numbers)&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    n, m = read_input()&lt;br /&gt;
    &lt;br /&gt;
    # Validări&lt;br /&gt;
    if not (1 &amp;lt;= n &amp;lt;= 7):&lt;br /&gt;
        raise ValueError(&amp;quot;n trebuie să fie între 1 și 7&amp;quot;)&lt;br /&gt;
    if not (0 &amp;lt; m &amp;lt; 6):&lt;br /&gt;
        raise ValueError(&amp;quot;m trebuie să fie între 1 și 5&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    numbers = []&lt;br /&gt;
    generate_numbers(n, m, &amp;quot;&amp;quot;, numbers)&lt;br /&gt;
    numbers.sort()&lt;br /&gt;
    write_output(numbers)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Benzar Ioan</name></author>
	</entry>
</feed>