Головоломки для програмування та коди для гольфу

Q & A для програмування головоломки ентузіастів і код гольфістів

30
Обчисліть медіану
Виклик Враховуючи непорожній список реальних чисел, обчисліть його медіану. Визначення Медіана обчислюється так: Спочатку сортуйте список, якщо кількість записів непарна , медіана - це значення в центрі відсортованого списку, інакше медіана - це середнє арифметичне з двох значень, найближчих до центру відсортованого списку. Приклади [1,2,3,4,5,6,7,8,9] -> 5 [1,4,3,2] -> 2.5 …

30
Намалюйте пісочний годинник
Знову натхненний завданням програмування 101 ось ще одне завдання. Вхід: Позитивне ціле число n >= 3. (має бути непарним) Вихід: nрядки зірочок, де перший рядок має nзірочки, і кожен новий рядок має дві зірочки менше, ніж рядок раніше. Поки не потрапив 1 зірочку. Звідти кожен новий рядок має дві зірочки …

14
Array Escape - піти звідти
Одного разу ти прокинешся лише для того, щоб потрапити в масив. Ви намагаєтеся просто піти звідти, беручи один індекс на час, але, схоже, є й інші правила: Масив повністю заповнений натуральними числами. Якщо ви опинитесь на індексі n, переходите до індексу array[n], крім: Якщо ви опинитесь на індексі, nякий є …

12
Створіть косу Паскаля
Це тасьма Паскаля: 1 4 15 56 209 780 2911 10864 40545 151316 564719 1 3 11 41 153 571 2131 7953 29681 110771 413403 1542841 1 4 15 56 209 780 2911 10864 40545 151316 564719 Я цілком це придумав. Наскільки у Блейза Паскаля не було коси, і якщо …

5
Виправте абзац
У дусі Patch the Image , ось подібний виклик, але з текстом. Виклик Трохи гнилі вразили ваш дорогоцінний текст! З огляду на абзац, що складається з символів ASCII, з прямокутним отвором десь у ньому, ваша програма повинна спробувати заповнити отвір відповідним текстом, щоб абзац змішався якнайкраще. Подальші визначення Отвір завжди …

5
Italicize ASCII ст
Враховуючи художню картину ASCII, виведіть курсивне зображення ASCII. Щоб виділити курсив мистецтва ASCII: Вставте нульові пробіли перед останнім рядком, один пробіл перед другим-останнім рядком, два пробіли перед третім-останнім рядком тощо. Видаліть зайві провідні пробіли, які, можливо, були створені. Тобто, якщо в кожному рядку є принаймні nпробіли, що передують йому, видаліть …

20
Фігура та земля
Джерело: Вікіпедія Для цього завдання слід написати дві програми, що нагадують фігуру та землю вищезазначеного зображення, так що одна з них друкує, figureа друга друкує ground. Конкретно: Напишіть програму, яка не потребує введення, та друкує рядок figure. Єдиними дозволеними символами пробілів у вашій програмі є пробіли (кодова точка 0x20) та …

9
Видаліть непотрібні дужки
Вам дається рядок, складена з символів 0123456789+*(). Можна припустити, що рядок - це завжди дійсний математичний вираз. Ваше завдання - видалити непотрібні дужки, припускаючи, що множення має більший пріоритет, ніж додавання. Дужки повинні бути видалені лише тоді, коли вони структурно не потрібні : через множення вищий пріоритет: 3+(4*5)=>3+4*5 через асоціативності …

4
Проблема щасливого Ендера
Проблема щасливого кінця (власне теорема) стверджує, що Будь-який набір з п’яти точок у площині в загальному положенні має підмножину з чотирьох точок, які утворюють вершини опуклого чотирикутника. Проблему так назвав Пол Ерд, коли двоє математиків, які вперше працювали над проблемою, Естер Кляйн та Джордж Секерес, одружилися та згодом одружилися. Роз'яснення: …

5
Ланцюгова реакція бомб
Вступ: Перед завданням, ось що робить кожен елемент на карті: Звичайна земля ( X): Це нічого не робить. Знищена земля ( -): Це те саме, що звичайна земля, але знищена бомбою. Активна бомба ( !): На карті це знищить усе в квадраті 3х3: XXXXX XXXXX XXXXX X---X XX!XX > will …

13
Візуалізуйте бітове плетіння
Езотерична мова програмування зла має цікаву операцію над значеннями байтів, які вона називає "плетінням". По суті це перестановка восьми біт байта (не має значення, з якого кінця ми почнемо рахувати, оскільки шаблон є симетричним): Біт 0 переміщується в біт 2 Біт 1 переміщено в біт 0 Біт 2 переміщується в …

30
Послідовність Сильвестра
Послідовність Сильвестра, OEIS A000058 , є цілою послідовністю, визначеною наступним чином: Кожен член - це продукт усіх попередніх членів плюс один. Перший член послідовності - 2. Завдання Створіть найменшу можливу програму, яка займає n і обчислює n-й член послідовності Сильвестра. Застосовуються стандартні вхід, вихід та лазівки. Оскільки результат зростає дуже …

30
Бінарний до десятковий перетворювач
Бінарний до десятковий перетворювач Наскільки я бачу, у нас немає простої задачі на перетворення двійкових у десяткову. Напишіть програму або функцію, яка приймає додатне двійкове ціле число і виводить її десяткове значення. Вам заборонено використовувати будь-які вбудовані функції перетворення базових даних. Цілі до десяткових функцій (наприклад, функція, яка перетворюється 101010на …

6
Тік-так-носок з лише хрестами
Вступ Всім відома гра tic-tac-toe, але в цьому виклику ми збираємось запровадити невеликий поворот. Ми будемо використовувати лише хрестики . Перша людина, яка поставить три хрести підряд, програє. Цікавий факт, що максимальна кількість хрестів, перш ніж хтось програє, дорівнює 6 : X X - X - X - X X …

9
Обертайте антидіагоналі
Фон У більшості розумних мов програмування обертати рядки або стовпці 2D масиву дуже просто. У цьому виклику ваше завдання - повернути антидіагоналі замість цього. Нагадаємо, що антидіагоналі двовимірного масиву - це його 1D зрізи, взяті у північно-східному напрямку ↗. Вхідні дані Непорожній прямокутний 2D масив одноцифрових чисел у будь-якому розумному …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.