Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 02.07.2020
Сообщений: 4

"Получи число" олимпиада

10.11.2020, 15:02. Показов 1698. Ответов 3

Студворк — интернет-сервис помощи студентам
Олимпиада по Python. Осилил все задачи, кроме этой. Помоги, пожалуйста. Я пытался решить через рекурсию, но не могу понять, где и как останавливать её.
"Всем известна задача про получение из мухи слона. Здесь же предстоит получить из одного натурального числа другое натуральное число по следующим правилам. За один шаг можно к числу X прибавить или вычесть любое натуральное число Y, десятичная запись которого является подстрокой десятичной записи числа X. При этом стоимость данной операции равна сумме цифр числа Y.

Необходимо за минимальную стоимость получить из числа A число B, при этом все промежуточные числа должны быть положительными и не должны превышать N.

Входные данные
Входной файл INPUT.TXT содержит целые числа N (1 ≤ N ≤ 5000), A (1 ≤ A ≤ N) и B (1 ≤ B ≤ N).

Выходные данные
В выходной файл OUTPUT.TXT выведите -1, если невозможно получить из числа A число B. Если такая последовательность преобразований существует, в первой строке выведите минимальную стоимость требуемого преобразования. Во второй строке выведите число K – количество шагов в преобразовании. В последующих K строках выведите сами шаги преобразования по одному в строке. Каждая строка должна иметь вид +число или -число, в зависимости от того, прибавляется или вычитается очередное число."

Пример
Ввод:
20 12 18
Вывод:
5
3
-2
+10
-2
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2020, 15:02
Ответы с готовыми решениями:

Олимпиада. Сформируйте заказ на M ручек, используя минимальное число различных упаковок
Ограничение по времени: 0.5 секунды Решив запастись ручками на весь новый учебный год, Игорь подсчитал, что ему нужно M ручек. В его...

Олимпиада по программированию. В выходной потек вывести единственное число - количество пустых клеток в данной комнате
Извените что на укр. ибо срочно. 1)Найти площадь комнаты в квадратном лабиринте. Формат входных данных. В первой строке входного...

Получи дерево
Задача такая: Дан связный неориентированный граф без петель и кратных ребер. Разрешается удалять из него ребра. Требуется получить дерево....

3
37 / 26 / 1
Регистрация: 31.03.2019
Сообщений: 585
10.11.2020, 16:08
Ваши идеи по решению этой задачи?Arrmageddon,
0
0 / 0 / 0
Регистрация: 02.07.2020
Сообщений: 4
10.11.2020, 16:35  [ТС]
Ну я думал сделать это через рекурсию. В функции число А разбиваем на простые числа, а затем к нем прибавляем или отнимаем эти числа, вызывая снова эту функцию. А вот как бы остановить, и правильно возвращать стоимость операции, не могу понять.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
N = 20
A = 12
B = 18
 
def F(A):
    global N
    global B
 
    lst = [A]
    while A > 0:
        lst.append(A % 10)
        A //= 10
    print(lst)
    A = lst[0]
 
    for i in lst:
        if A + i != B and A + i < N:
            F(A + i)
        elif A - i != B:
            F(A - i)
        else:
            pass    
 
F(A)
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
11.11.2020, 10:16
Arrmageddon, задача на тему графы вроде
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.11.2020, 10:16
Помогаю со студенческими работами здесь

Получи единицу
Получи единицу Дана десятичная запись целого неотрицательного числа без ведущих нулей. С ней можно делать следующие операции: '1' -...

Получи единицу
Получи единицу Вам дана десятичная запись целого неотрицательного числа без ведущих нулей. С ней можно делать следующие операции: ...

Получи единицу
Получи единицу: Вам дана десятичная запись целого неотрицательного числа без ведущих нулей. С ней можно делать следующие операции: ...

Получи единицу
Дана десятичная запись целого неотрицательного числа без ведущих нулей. С ней можно делать следующие операции: '1' - умножить число на...

По значению температуры получи сообщение
По значению температуры получи сообщение в зависимости от попадания этого значения в заданный диапазон. Напиши функцию temp_condition(t),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль корректности заполнения дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru