Здравствуйте! Сегодня разберём олимпиадную задачу по информатике, которая называется треугольные числа.
Задача треугольные числа.
Школьник Никита этим летом отдыхал со своими родителями. Его любимым занятием на пляже было складывать из камешков правильные треугольники (правильным называется треугольник, у которого все стороны равны). Никита и не предполагал, что числа, из которых можно сложить правильный треугольник, называются треугольными. Вот несколько треугольных чисел: 1, 3, 6, 10, … .
Помогите Никите по заданному количеству камешков N найти наибольшую сторону правильного треугольника, который из них можно сложить. Например, если у Никиты 30 камешков, то длина наибольшей стороны правильного треугольника, который из них можно сложить, будет 7.
Тесты для самопроверки:
30 | 7 |
29 | 7 |
28 | 7 |
27 | 6 |
9876543210000 | 4444443 |
9223372036854775807 | 4294967295 |
Рассмотрим треугольные числа. Видим, что первое треугольное число — это просто 1. Второе число — это сумма чисел до 2 (1+2), третье число — сумма чисел до 3 (1+2+3) и т.д.
Плюс ко всему, второе число образует треугольник со стороной 2, третье число со стороной 3 и т.д.
Рассмотрим треугольное число по номером n. Видим, что это сумма арифметической прогрессии.
Свернём по формуле арифметической прогрессии. Число Sn (сумма арифметической прогрессии) в нашей задаче это количество камней, которое вводит пользователь. Число n в данном уравнении обозначает порядковый номер треугольного числа или длину стороны правильного треугольника, который можно составить из данного количества камней.
Остаётся решить данное уравнение относительно n в целых числах, чтобы разгадать нашу задачу.
Последние уравнение это и есть ответ в нашей задаче. Если n — будет дробным, значит мы должны его округлить в меньшую сторону, т.к. наше уравнение решается только в целых числах. (Дробное количество камней не может быть).
Запрограммируем данную задачу на C#
Т.к. число 9223372036854775807 * 8 превышает максимальное число даже для типа ulong, то будем использовать специальный тип BigInteger.
Для того, чтобы использовать BigInteger, нужно в ссылках добавить System.Numerics . И прописать using System.Numerics в программе.
Для этого типа данных не работает стандартная функция извлечения корня Math.Sqrt(), поэтому мы напишем свою функцию извлечения корня основанную на методе Ньютона. Эта функция извлекает корень и округляет результат в меньшую сторону. Об этом методе можете прочитать подробно в статье на этом сайте.
На этом всё, до свидания!
Видео:ВСЕ ТИПЫ 7 заданий | Информатика ЕГЭ 2023 | УмскулСкачать
Задача про треугольник информатика
Откройте файл электронной таблицы, содержащей в каждой строке три натуральных числа.
Определите, сколько среди заданных троек чисел таких, которые могут быть сторонами прямоугольного треугольника.
Заметим, что треугольник является прямоугольным, если квадрат длины гипотенузы треугольника будет равен сумме квадратов длин катетов этого треугольника. Тогда в ячейке D1 запишем формулу =(МАКС(A1:C1))^2 и скопируем её во все ячейки диапазона D2:D5000. В ячейке E1 запишем формулу
и скопируем её во все ячейки диапазона E2:E5000. Таким образом, получим квадрат длины гипотенузы и сумму квадратов катетов для каждой тройки чисел. После этого в ячейку F1 запишем формулу =ЕСЛИ(D1=E1;1;0) и скопируем её во все ячейки диапазона F2:F5000. Теперь, воспользовавшись формулой =СУММ(F1:F5000), получим ответ — 2.
Видео:Проблемная 8 задача из ЕГЭ по информатике | Как решать 8 задачи со спискомСкачать
Определить возможность существования треугольника по сторонам
Задача
Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей.
Дано: a , b , c – стороны предполагаемого треугольника.
Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.
Решение
Ниже приведены решения задачи на языке программирования Паскаль двумя способами. В первом случае все стороны проверяются в одном операторе if; во втором случае каждое условие проверяется отдельно, а программа содержит вложенные операторы if-else.
Программа 1 (предпочтительный способ решения):
В языке Паскаль логический оператор and имеет приоритет над операторам >, if проверяется, что каждая из сторон меньше суммы других. Если хотя бы одна будет больше, то все логическое выражение вернет ложь ( false ). В таком случае сработает ветка else .
В данном случае существование треугольника проверяется по-этапно. Если первое условие возвращает ложь, то программа переходит к последнему else. Если же первое условие соблюдено, то поток выполнения программы оказывается у вложенного if. Здесь проверяется уже второе условие. Если оно возвращает ложь, то программа переходит к предпоследнему else. Если и второе логическое выражение возвращает истину (true), то программа идет к третьему условию. При его соблюдении выполняется тело самого вложенного оператора if. При его несоблюдении сработает самое вложенное else.
Несмотря на то, что данная программа кажется длиннее, в определенных ситуациях она может выполняться быстрее, чем первая. Здесь если внешнее if возвращает ложь, то остальные логические выражения вообще не проверяются. В первой программе могут и проверяться (это зависит от особенностей языка программирования).
📸 Видео
Задания 9-10 | ЕГЭ по информатике | ДЕМО-2023Скачать
КАК решить 9 НОМЕР на PYTHON | ПРОЩЕ, чем в Excel | ЕГЭ Информатика 2023Скачать
Задание 9 // ЕГЭ по информатике 2022Скачать
Задание 18 - 25. Треугольник и полосы. ЕГЭ по информатике.Скачать
Таблицы / Эксель / Задания №9 и №3 | Информатика ЕГЭ 2023 | УмскулСкачать
РАЗБОР ВСЕХ ТИПОВ ЗАДАНИЯ 11 | ИНФОРМАТИКА ЕГЭ | Виктория Ланская | УмскулСкачать
Задание 6 // КЕГЭ по информатике 2023Скачать
Все типы решений заданий 19-21 | Информатика ЕГЭ 2023 | УмскулСкачать
Решение 23 задачи ЕГЭ информатика | Рекурсивный алгоритмСкачать
Задание 15 — Задачи, которые все боятся | Информатика ЕГЭ 2023 | УмскулСкачать
Математика это не ИсламСкачать
Очень сложно! Как решать 9 задание в ЕГЭ по информатике l Коля Касперский из ВебиумСкачать
Разбор 5 задания на Python | ЕГЭ-2023 по информатикеСкачать
Задание 6 | ЕГЭ по информатике | ДЕМО-2023Скачать
Вузак по информатике 2023. Разбор задачи F "Целые треугольники".Скачать
ВСЕ ТИПЫ 4 заданий | Информатика ЕГЭ 2023 | УмскулСкачать
Самый короткий тест на интеллект Задача Массачусетского профессораСкачать
Все про прямоугольный треугольник. Решаем задачи | Математика | TutorOnlineСкачать