1290 - CifreGen3

From Bitnami MediaWiki

Cerința[edit | edit source]

Se dau două numere n m. Să se genereze toate numerele cu exact n cifre mai mici decât m cu proprietatea că prima și ultima cifră sunt egale.

Date de intrare[edit | edit source]

Programul citește de la tastatură numerele n m.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran numerele generate, câte unul pe linie, în ordine crescătoare.

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

  • 1 ≤ n ≤ 7
  • 0 < m < 6

Exemplu 1[edit | edit source]

Intrare

3 3

Iesire

101
111
121
202
212
222

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def generate_numbers(n, m):

   numbers = []
   for i in range(10**(n-1), 10**n):
       num_str = str(i)
       if num_str[0] == num_str[-1] and all(int(digit) < m for digit in num_str):
           numbers.append(num_str)
   return numbers

def read_input():

   n, m = map(int, input("Enter n and m: ").split())
   if not (1 <= n <= 7):
       raise ValueError("1 ≤ n ≤ 7")
   if not (0 < m < 6):
       raise ValueError("0 < m < 6")
   return n, m

def main():

   try:
       n, m = read_input()
       numbers = generate_numbers(n, m)
       for num in numbers:
           print(num)
   except ValueError as e:
       print("Error:", e)

if __name__ == '__main__':

   main()

</syntaxhighlight>