Вопрос задан 11.04.2021 в 21:38. Предмет Информатика. Спрашивает Сигаев Даниил.

Восьмиклассник Вова сегодня дежурит по классу. После уроков он зашёл в кабинет, чтобы вымыть доску,

и обнаружил на ней число n . На вопрос о происхождении этого числа учительница математики Инна Петровна, проверявшая тетради за учительским столом, ответила Вове, что n является ответом на задание по арифметике для первоклассников. В учебнике было дано некоторое число x . Задача состояла в том, чтобы сложить x с суммой цифр числа x , записанного в десятичной системе счисления. Поскольку число n на доске было небольшим, Вова быстро догадался, какое число x могло быть в учебнике. Теперь ему хочется получить программу, которая будет для произвольных значений числа n искать все подходящие значения x или определять, что таких x не существует. Напишите для Вовы такую программу. Входные данные В первой строке находится целое число n ( 1 ≤ n ≤ 10 9 ). Выходные данные В первой строке выведите одно целое число k — количество различных значений x , удовлетворяющих условию. В следующих k строках выведите сами значения по одному в строке в порядке возрастания. как сделать это на питон 3.6?
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Ментюк Вика.

def summ(num):

 s = 0

 while num > 0:

   s = s + num%10

   num = num // 10

 return s

n=int(input())

a=[]

   

for e in range(n+1):

 if e+summ(e)==n:

   a.append(e)

   

print(len(a))

for i in range(len(a)):

   print(a[i])



Ввод:

101

Вывод:

2

91

100

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения задачи можно написать функцию, которая будет принимать на вход значение n и возвращать список всех подходящих значений x.

Вот пример решения на Python 3.6:

python
def find_x(n): result = [] for x in range(max(1, n - 81), n): if x + sum(int(digit) for digit in str(x)) == n: result.append(x) return result n = int(input()) x_list = find_x(n) print(len(x_list)) for x in x_list: print(x)

Функция find_x перебирает все возможные значения x от 1 до n-1 и проверяет, удовлетворяет ли условию задачи. Чтобы ограничить диапазон перебора и ускорить выполнение программы, мы используем верхнюю границу в виде n - 81, так как максимальная сумма цифр трехзначного числа равна 27 (9 + 9 + 9).

Затем мы выводим количество подходящих значений x и сами значения в порядке возрастания.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос