Творческие задачи

(1): Число Мерсенна – это число вида 2n -1, где n – натуральное число. Например, числа 7, 15, 31 являются числами Мерсенна. На вход программе подается поток чисел из m целых чисел. Написать программу, которая находит в этом потоке чисел три числа, которые в сумме дают число Мерсенна. 

(2): Число Мерсенна – это число вида 2n -1, где n – натуральное число. Например, числа 7, 15, 31 являются числами Мерсенна. На вход программе подается два целых числа. Необходимо написать программу, которая выводит True, если сумма цифр суммы вводимых двух чисел является числом Мерсенна. Например, вводятся два числа 550 и 5. Сумма чисел равна 550 + 5 = 555. Сумма цифр 555 равна 15. Число 15 является числом Мерсенна, значит, программа выведет True.

(3): Число Мерсенна – это число вида 2n -1, где n – натуральное число. Например, числа 7, 15, 31 — являются числами Мерсенна. На вход программе подаются 5 чисел. Написать программу, которая находит количество чисел Мерсенна.

(4): СУПЕРСУММА – это число, которое получается в результате подсчета суммы цифр у суммы цифр. Например, у числа 19789 сумма цифр равна 34. Тогда суперсумма равна 3 + 4 = 7. У разных чисел может получиться одна суперсумма. Например, у числа 195 и 99933 суперсумма равна 6. Напишите программу, которая в потоке чисел определяет максимальную суперсумму и выводит ВСЕ числа из потока с этой суперсуммой. Программа вводит поток чисел (0 – признак окончания ввода).

(5): СУПЕРСУММА – это число, которое получается в результате подсчета суммы цифр у суммы цифр. Например, у числа 19789 сумма цифр равна 34. Тогда суперсумма равна 3 + 4 = 7. Напишите программу, которая в потоке чисел, ограниченным нулем, выводит суперсумму для каждого числа.

(6): Пользователь вводит с клавиатуры 3 целых числа. Напишите программу, которая переставляет цифры этих чисел в порядке убывания (Цифры соединяются в единое число) и разбивает эти цифры на новые трехзначные числа, начиная с конца (по правилу триад). Первое число может быть не трехзначным. Например, вводились 3 числа: 71, 380 и 24. Результат перестановки цифр: 8743210. Результат преобразования новых чисел: 8, 743, 210. Программа должна вывести преобразованные числа. (Примечание: если в результате преобразования получается число 000 или 00, то программа должна вывести 0).

(7) (новогодняя магическая задача):

Гарри Поттер хочет поздравить Гермиону с новым годом. Он знает, что Гермиона любит различные заклинания, поэтому Гарри решил подарить ей подарочную книгу заклинаний. Но чтобы никто не смог узнать, как эти заклинания можно произносить в жизни, автор книги решил закодировать номера заклинаний следующим образом:

  1. Вычисляется двоичная запись номера заклания.
  2. Все цифры этой двоичной записи складываются и делятся целочисленно на 4.
  3. Полученное число умножается на 8 и  переводится в восьмеричную систему счисления.
  4. Из полученного восьмеричного числа отбрасывается последняя цифра, и число переводится в десятичную систему счисления и умножается на 10.

Данное число является кодом к заклинанию, которое необходимо произнести, чтобы заклинание сработало. Например, если в книге заклинание по превращению человека в лягушку имеет номер 1023, то надо произнести 20. Если таких кодов будет несколько, то волшебная палочка выберет случайное заклинание. Данный алгоритм автор книги хранил в секрете.

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

(8): Крестраж числа — это часть души числа. Частичка души может получиться только при делении нацело этого числа на другое. Например, 128/2 = 64. В этом случае 64 — крестраж числа 128 по основанию 2. То есть, чтобы получить крестраж, необходимо разделить число на любой его делитель. Крестражей у числа может быть несколько. Как только из числа может выйти максимальное число крестражей, число обращается в ноль. Крестражи — это темная магия, поэтому все они спрятаны в формат 3*d + 1, где d -крестраж числа.
Напишите программу, которая по входному целому числу выводит все его спрятанные крестражи в формате 3*d + 1. Кроме вывода самих спрятанных крестражей, программа должна вывести их количество. Если количество крестражей равно нулю, то выведете соответствующее сообщение.

Примечание: 1 и само число — крестражами не являются.

(9): В службе доставки еды работают три курьера: Иван, Дмитрий и Андрей. Каждый заказ нумеруется шестизначным кодом, который может состоять из десятичных цифр от 0 до 9. Ивану достаются заказы с самым минимальным и самым максимальным номерами. Дмитрию достаются заказы с четной суммой цифр, но не достаются заказы, которые достались Ивану. Андрею достались все остальные заказы. Если же какому-то курьеру не достались заказы, необходимы вывести: «Нет заказов!».  Программа получает на вход натуральное число N —  количество заказов, а затем номера самих заказов. Программа должна распределить все номера заказов по трем курьерам.

Пример работы программы:

(10): В некотором ресторане быстрого питания заказ клиента кодируется либо трехзначным числом, либо четырехзначным числом. Заказ, сделанный в живой кассе, кодируется трехзначным числом, а заказ, сделанный в онлайн-кассе – четырехзначным числом. Кухня сначала обрабатывает заказы, сделанные в живой кассе, а затем все остальные. Очередь обработки заказов составляется по убыванию суммы цифр номеров заказов. Если сумма цифр в нескольких номерах заказов одинакова, то сначала будет обслуживаться тот заказ, который поступил в последовательность раньше. На кухню поступают N номеров заказов. Напишите программу, которая генерирует очередь из N заказов, начиная от первого заказа до заказа с номером N.

Пример работы программы:

(11): В пятиэтажном доме 4 подъезда. На четных этажах располагаются однокомнатные квартиры, на нечетных этажах – двухкомнатные. На каждом этаже по 4 квартиры. В каждом подъезде по 20 квартир. Номера квартир в подъездах нумеруются следующим образом:

Подъезд №1: от 1 до 20 номера.

Подъезд №2: от 21 до 40 номера.

Подъезд №3: от 41 до 60 номера.

Подъезд №4: от 61 до 80 номера.

На вход подается число N – номер квартиры. Напишите программу, которая определяет номер подъезда, этаж, тип квартиры (однокомнатная, двухкомнатная), либо сообщает, что такой квартиры не существует в этом доме.

(12): В экспертном галактическом совете каждый световой год происходит проверка знаний учащихся галактики. Лучшие учителя галактики вылетают на секретную планету и проверяют ответы учеников. Чтобы проверка была объективной, одну работу проверяет два учителя. Если же оценки ученика различаются более, чем в 1 бал, то работа должна быть перепроверена магистром галактики. Напишите программу, которая реализует следующий алгоритм:

  1. Вводится количество работ учеников.
  2. Вводится номер работы.
  3. Вводится оценка первого учителя.
  4. Вводится оценка второго учителя.
  5. Действия 2-4 происходит до тех пор, пока пользователь не введет все оценки за работы.

Программа должна вывести все номера работ, которые должен проверить магистр галактики. (Максимальная оценка равна 10, минимальная – 0).

Результат выполнения работы:

(13): В некоторой сети пиццерий существует три вида доставки заказа. Официантам пиццерии через специальную программу приходит уведомление о номере заказа и вида заказа. Под видом заказа понимается онлайн-заказ, доставка пиццы на кассе или доставка пиццы до стола. В программу поступает заказ вида N-M, где N – десятичный номер заказа, M – вид заказа (О – онлайн-заказ, К – доставка на кассе, С — доставка до стола). Например, заказ №68-К означает, что заказ будет доставлен до кассы. Напишите программу, которая по введенным пользователям X заказов сортирует заказы по трем категориям и выводит количество ошибок (количество введенных пользователем номеров заказов, которые не подходят ни под одну категорию).

(14) (Новогодняя задача 2023): Кевин Маккалистер, как обычно, остался один дома в новогоднюю ночь. Чтобы скрасить себе настроение, он решил купить себе новогодних подарков. Но денег у немного, так как родители на новогоднее путешествие забрали большую часть семейного бюджета. Всего у Кевина 200 долларов. Когда он пришел в магазин, продавец Том показал ему базу данных всех новогодних товаров. База данных очень большая, и Кевин решил написать программу, которая определит, хватит ли ему бюджета на всю покупку. В файле «New Year.txt» находится база данных, состоящая из 100 строк. В каждой строке два числа: первое число –  ID новогоднего товара, второе число — стоимость товара в долларах. Два числа разделены пробелом. Напишите программу, по которой Кевин может ввести N товаров и узнать, хватит ли ему на эти товары бюджета, а также оповестит Кевина о том, на какую сумму вышла покупка. Программа на вход получает натуральное число N — количество товаров, которые хочет купить Кевин, а затем числа — ID из базы данных. Если такого ID в базе данных нет, то программа завершается сообщением «Нет таких товаров в базе данных».

Пример работы программы:

New Year

(15): Виктор и Олег купили себе фитнес-браслеты, которые каждое утро определяют качество сна. Качество сна — это целое число от 1 до 100. Чем больше это число, тем выше качество сна. В конце недели Виктор и Олег встретились и решили проверить, у кого качество сна за последние N дней было выше. Напишите программу, которая по входным данным — качество сна за N дней, определяет, у кого из ребят (Виктора или Олега) больше дней, в которых его качество сна было выше за введенные N дней. Если количество таких дней одинаковое или качество сна было одинаковое в дни, после которых количество дней у Виктора и у Олега остается равным, то программа должна вывести «никто». Программа получает на вход натуральное число N, а затем в N строках два числа от 1 до 100 — качество сна сначала для Виктора, затем для Олега. Программа должна вывести имя того, у кого количество дней с большим качеством сна было больше и на сколько, или вывести слово «Никто».

Пример работы программы:

(16) (Новогодняя задача 2024): Дед Мороз подготовил подарки для N ребят — учеников, которые весь год упорно решали задачи по программированию. У Деда Мороза с собой мешок, который состоит из M разных подарков. Дед Мороз — волшебник, поэтому если ребят больше подарков(N > M), то Дед Мороз волшебным образом сгенерирует оставшиеся подарки так, чтобы каждому из N учеников хватило по одному подарку. Если же подарков больше, чем детей, то Дед Мороз случайным образом выберет подарки ребятам таким образом, чтобы каждому достался только один подарок, а оставшиеся подарки оставит на другие праздники. Напишите программу, которая для каждого из N ребенка выбирает ему подарок. На вход программе подается натуральное число N — количество детей, которым Дед Мороз должен подарить подарки, и M — количество подарков, которые есть у Деда Мороза в наличии. Программа должна сначала сгенерировать текстовый файл, в котором для каждого из M подарка запишет его код (случайное неповторяющиеся числа от 128 до 8192), а затем для каждого из N ребенка вывести его соответствующий код подарка из мешка Деда Мороза. (Текстовый файл — это и есть мешок, состоящий из M подарков. В этом файле содержится информация о коде подарков. Программа выводит любой код подарка для каждого ученика (случайным образом) и удаляет этот код подарка из мешка). Программа также должна вывести сообщение, остались ли еще в мешке подарки или все подарки розданы.

Пример работы программы:

(Выходные данные могут отличаться, так как коды подарков генерируются случайным образом)

(17): Одиннадцатиклассники писали олимпиаду по информатике. Всего в олимпиаде принимало участие N учеников. Напишите программу, которая определяет максимальный балл, набранный участниками олимпиады и количество участников, которые смогли этот балл получить. Программа получает N участников олимпиады, а затем баллы. Программа должна вывести максимальный балл, набранный участниками олимпиады и количество участников, которые смогли этот балл получить.

Пример работы программы: