Универсальной возможности не дать скопировать то, что появляется на экране, нет и быть не может - банально сфоткать экран смартфоном вы никак не сможете запретить.
Бывают частные возможности для конкретных специальных случаев. Выявляются на анализе подробностей - что за файл, как будут смотреть, есть ли варианты показать, но обесценить (иногда достаточно полупрозрачной надписи "образец" поперек) или зацепить конкретную утечку и предъявить иск тому, у кого утекло (как, говорят, делают с предпремьерными копиями фильмов, внося в них незаметные уникальные метки)...
Прекрасная задача, составленная умным учителем для умных учеников! (извините, эиоции - только что ассистировал ребенку в сдаче онлайн-теста, написанного дурой для идиотов).
Перебирать, собственно, незачем. Достаточно отсортировать эти 3 числа.
Если меньшее из чисел больше 2 - понадобится 3 хода.
иначе Если среднее больше 1 - два хода.
иначе Если большее больше 0 - один ход
иначе 0 ходов.
mayton2019, ну, вообще-то, можно поискать, в каком объеме инфраструктура rsync портирована на винды и обязательны ли костыли типа cygwin...
Или, возможно, кто-то повторил технологию в своем Win-продукте.
Но мне-то оно точно не надо ;)
Ziptar, поэтому я и написал - "демон rsync". Он берет на себя эту задачу на удаленном хосте.
Но при этом не требует каких-то хитростей, покупок и настроек - штатно запускается на любой Убунте.
Уж если на удаленном сервере создано какое-то хранилище, завести там этого демона - совершенно не проблема.
mayton2019, rsync разбивает файлы на блоки, считает от них контрольные суммы - и гоняет по сети только их. Соответственно, работает со скоростью локального диска.
Например, выкинуть с NAS винды и использовать для поставленной задачи не виндокомбайны, а rsync, который не гоняет по сети файлы, обходясь достаточными для сравнения чексуммами. Ну, и папки читает на месте, а не перечитывает постоянно - вдруг удаленная изменилась.
Artem Maximov, ну, тут два варианта: либо обратиться к промышленному юристу, который докажет, что комиссия гонит пургу и предъявляет вам требования без оснований, либо открывать вакансию безопасника.
А вы (предприятие без ИБ-шника) - точно подпадаете под п. 1.1 этого самого ПП?
У жертв таких указивок обычно вся организация начинается с "первого отдела"...
https://dev.1c-bitrix.ru/api_help/form/events/onaf...
+ написать бота для регистрации в нем (отправка сообщений через ТГ - только подписавшемуся).
В общем, все гуглится за полчаса, и особенных препятствий нет. Так что наверняка и готовые плагины есть.
"Встройка"/"встроенка" - это чаще про видеокарту.
Про встраиваемую технику - "эмбед": тот, кто в теме - поймет, и ни с чем не спутаешь.
Представьте, что вам по какому-нибудь ЛОРу надо это дело погуглить, например...
Александр, теоретически можно извратиться и сделать из рекурсивной функции два разных return, но это такой отчаянный говнокод, что даже руки марать, набирая его, не стоит.
В заголовке и тексте слово "рекурсивная" - это непонятно?
У ТС, похоже, задача о семиугольном треугольнике - поставленная нарочито так, чтобы без извращений не решить. Возможно, проверка владения языком...
В моем понимании интерфейс это тот же абстрактный класс, но в котором нет ни одного метода заранее реализованного. Других отличий не вижу и как он тут поможет не понимаю
Разница принципиальна.
Абстрактный класс говорит: все наследники являются чем-то, что можно обобщить. Наследники AbstractDataClass - дата-классы. Даже если у них вообще нет ни одного общего метода.
Интерфейс говорит: все реализующие имеют указанные методы. Например, Iterable - имеет какую-то коллекцию, которую можно перебрать по одному элементу. Чем является конкретный реализующий - вообще неважно.
Так вот, вопрос в чем: вот с этим самым возвращаемым значением что в коде будет? Оно дальше будет обрабатываться, как некая абстрактная общность, независимо от содержания, или у него будут дергать конкретные функции, независимо от того, кого дергают? Соответственно, уместен либо абстрактный класс, либо интерфейс.