Прикреплённый файл «2012-11-16.summacifr-nonr.py»

Загрузка

   1 #!/usr/bin/env python
   2 # coding: utf
   3 '''
   4 Ввести N и число, вывести все N-значные числа, сумма цифр которых равна
   5 заданному числу.
   6 '''
   7 
   8 N,S = input()
   9 
  10 n,s,a = N-1,S-1,1
  11 
  12 while n<N:                              # Не пытались убрать первую цифру
  13     if n:                               # Цифр недостаточно
  14         c=max(0,s-9*(n-1))              # Минимально возможная цифра
  15         if c<10:                        # Это цифра?
  16             a, s, n = a*10+c, s-c, n-1  # Добавим её
  17             continue
  18     else:                               # Число готово
  19         print a
  20     while a%10 == 9 or s==0:            # Достигнута сумма или последняя цифра — 9
  21         a, s, n = a/10, s+a%10, n+1     # Убрать последнюю цифру
  22     a, s = a+1, s-1                     # Увеличить последнюю цифру

Прикреплённые файлы

Для ссылки на прикреплённый файл в тексте страницы напишите attachment:имяфайла, как показано ниже в списке файлов. Не используйте URL из ссылки «[получить]», так как он чисто внутренний и может измениться.

Вам нельзя прикреплять файлы к этой странице.