Прикреплённый файл «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 из ссылки «[получить]», так как он чисто внутренний и может измениться.- [получить | показать] (2012-11-22 23:35:58, 1.7 KB) [[attachment:2012-11-16.binpoisk.py]]
- [получить | показать] (2012-11-22 23:35:45, 1.3 KB) [[attachment:2012-11-16.sort.py]]
- [получить | показать] (2012-11-22 23:36:17, 0.5 KB) [[attachment:2012-11-16.summacifr-dumb.py]]
- [получить | показать] (2012-11-22 23:36:33, 1.0 KB) [[attachment:2012-11-16.summacifr-nonr.py]]
Вам нельзя прикреплять файлы к этой странице.