Skip to content
лого - блог 1с программиста

Блог 1С программиста

Наработки, заметки и другая информация по 1С

  • Главная
  • Типовые конфигурации
    • ЗУП 3.1
      • Разработка
        • Обработки
        • Отчеты
        • Печатные формы
        • Расширения
      • Инструкции
      • Ответы техподдержки 1С
      • Общие вопросы
    • ДО 2.1
    • УХ 3.2
    • УПП 1.3
  • Интеграции и обмены
  • Шаблоны и заготовки
    • Типовые приемы
    • Отчеты
    • Обработки
    • Печатные формы
    • Расширения
  • Платформа 1С
  • Разработки
    • Контакты
  • Toggle search form

Вариант решения задачи от Елены Ф.

Posted on 1 августа 24 г.30 сентября 25 г. By Алексей Комментариев к записи Вариант решения задачи от Елены Ф. нет

Условия задачи можно почитать тут.

Решение
1С (Код)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Функция НайтиКомбинации() Экспорт
    МассивРешений = Новый Массив;
    НайтиВарианты(1, 1, 0, "1", МассивРешений, 1); // Старт рекурсии
    Возврат МассивРешений;
КонецФункции
 
Процедура НайтиВарианты(Позиция, ТекущееЧисло, ТекущаяСумма, ТекущееВыражение, МассивРешений, ПоследнийОператор)
    // ПоследнийОператор: 1 - "+", -1 - "-"
    
    Если Позиция >= 9 Тогда
        ИтоговаяСумма = ТекущаяСумма + ПоследнийОператор * ТекущееЧисло;
        Если ИтоговаяСумма = 99 Тогда
            МассивРешений.Добавить(ТекущееВыражение + " = 99");
        КонецЕсли;
        Возврат;
    КонецЕсли;
    
    СледующаяЦифра = Число(Сред("123456789", Позиция + 1, 1));
    
    // Вариант 1: Объединение цифр (без оператора)
    НайтиВарианты(
        Позиция + 1,
        ТекущееЧисло * 10 + СледующаяЦифра,
        ТекущаяСумма,
        ТекущееВыражение + СледующаяЦифра,
        МассивРешений,
        ПоследнийОператор
    );
    
    // Вариант 2: Добавление "+"
    НайтиВарианты(
        Позиция + 1,
        СледующаяЦифра,
        ТекущаяСумма + ПоследнийОператор * ТекущееЧисло,
        ТекущееВыражение + " + " + СледующаяЦифра,
        МассивРешений,
        1
    );
    
    // Вариант 3: Добавление "-"
    НайтиВарианты(
        Позиция + 1,
        СледующаяЦифра,
        ТекущаяСумма + ПоследнийОператор * ТекущееЧисло,
        ТекущееВыражение + " - " + СледующаяЦифра,
        МассивРешений,
        -1
    );
КонецПроцедуры
Алгоритм работы

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

  1. Рекурсивный перебор: На каждом шаге рассматриваем 3 варианта:
    • Объединение с предыдущей цифрой (формирование многозначного числа)
    • Добавление оператора “+”
    • Добавление оператора “-”
  1. Математическая модель:
    • ТекущееЧисло — накапливает объединенные цифры
    • ТекущаяСумма — хранит промежуточный результат
    • ПоследнийОператор — запоминает предыдущую операцию (+1 или -1)
  1. Базовый случай: Когда обработаны все 9 цифр, проверяем равенство суммы 99.

Рекомендации

  • Вариант решения задачи от myblog-1c.ru
  • Конкурс с призами! (Завершен 30.09.2025)
  • Отбор по динамическому списку с примерами
Без категории Tags:рекурсия

Навигация по записям

Previous Post: Вариант решения задачи от myblog-1c.ru
Next Post: Пример работы с «Пакетом запросов»

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

ДзенTelegram

Разработки

  • Печатная форма "Расходный кассовый ордер" для ЗУП 3.1 Печатная форма "Расходный кассовый ордер" ЗУП 3.1 650,00 ₽
  • Отчет "План-факт отпусков сотрудников в виде диаграммы Ганта Отчет "План-факт по отпускам сотрудников" ЗУП 3.1 650,00 ₽
  • Приказ об отмене трудового договора (рис 1) Печатная форма "Отмена приема на работу" ЗУП 3.1 650,00 ₽
  • Обработка “Выплата сотруднику через банк” ЗУП 3.1 Обработка “Выплата сотруднику через банк” ЗУП 3.1 0,00 ₽
  • Тестирование API Яндекс GPT Обработка "Работа с API YandexGPT" 650,00 ₽

MDM web-сервис XML БСП ЕФС-1 ИИ КД 2.0 НДФЛ СЗВ-СТАЖ СЗВ-ТД СКД СТД-Р СФР СЭДО ФСС ФСС НС больничные листы взносы вычеты длительная операция запрос интерфейс кадровая история кадровые данные кадровые переводы легкий труд мастер-данных обмен данными общий модуль отбор отпуска печать без проверки печать с диалогом пользователи представление прием на работу резервы отпусков сверхурочные синхронизация ЗУП и БП средний заработок табель таблица периодов табличный документ фотография штатное расписание

Яндекс.Метрика

© 2022-2026 myblog-1c.ru

Пользовательское соглашение

Контакты