Предмет: Информатика, автор: usmonzayniddinow

У Васи есть любимое число n. Он хочет разбить его на несколько ненулевых цифр. Это означает, что он хочет выбрать несколько цифр d1,d2,…,dk, таких, что 1≤di≤9 для всех i и d1+d2+…+dk=n.

Поскольку Вася во всем любит красоту, он хочет найти любое решение, в котором количество различных цифр среди d1,d2,…,dk будет как можно меньше. Помогите ему!

Входные данные
В первой строке находится единственное целое число n — число, которое хочет разбить Вася (1≤n≤1000).

Выходные данные
В первой строке выведите одно целое число k — количество цифр в разбиении. Заметьте, что k должно удовлетворять неравенству 1≤k≤n. В следующей строке выведите k цифр d1,d2,…,dk, разделенных пробелами. Для всех цифр должно быть выполнено неравенство 1≤di≤9.

Вы должны найти разбиение числа n, в котором количество различных цифр среди d1,d2,…,dk будет минимальным среди всех разбиений числа n на ненулевые цифры. Среди таких разбиений разрешается найти любое. Гарантируется, что существует хотя бы одно разбиение числа n на цифры.

Примеры
входные данные
1
выходные данные
1
1
входные данные
4
выходные данные
2
2 2
входные данные
27
выходные данные
9 9 9

Ответы

Автор ответа: timkafey
0

можно было бы просто все заполнить одними единицами и посчитать их число, но я подумал что так будет не правильно и сделал так.

python

n = int(input('Введите n: '))

k = 0

d = []

for i in range(10, 0, -1):

   while n - i > 0:

     k += 1

     d.append(i)

     n -= i

   if n == 1:

     k += 1

     d.append(1)

     break

print(k)

[print(str(i) + ' ', end='') for i in d]

Похожие вопросы
Предмет: Русский язык, автор: irinapotapckova
Предмет: Математика, автор: никита3176