Здравствуйте! Сегодня разберём олимпиадную задачу по информатике, которая называется треугольные числа.
Задача треугольные числа.
Школьник Никита этим летом отдыхал со своими родителями. Его любимым занятием на пляже было складывать из камешков правильные треугольники (правильным называется треугольник, у которого все стороны равны). Никита и не предполагал, что числа, из которых можно сложить правильный треугольник, называются треугольными. Вот несколько треугольных чисел: 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(), поэтому мы напишем свою функцию извлечения корня основанную на методе Ньютона. Эта функция извлекает корень и округляет результат в меньшую сторону. Об этом методе можете прочитать подробно в статье на этом сайте.
На этом всё, до свидания!
Видео:Задание 2 | ЕГЭ по информатике | ДЕМО-2023Скачать
Определить возможность существования треугольника по сторонам
Задача
Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей.
Дано: a , b , c – стороны предполагаемого треугольника.
Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.
Решение
Ниже приведены решения задачи на языке программирования Паскаль двумя способами. В первом случае все стороны проверяются в одном операторе if; во втором случае каждое условие проверяется отдельно, а программа содержит вложенные операторы if-else.
Программа 1 (предпочтительный способ решения):
В языке Паскаль логический оператор and имеет приоритет над операторам >, if проверяется, что каждая из сторон меньше суммы других. Если хотя бы одна будет больше, то все логическое выражение вернет ложь ( false ). В таком случае сработает ветка else .
В данном случае существование треугольника проверяется по-этапно. Если первое условие возвращает ложь, то программа переходит к последнему else. Если же первое условие соблюдено, то поток выполнения программы оказывается у вложенного if. Здесь проверяется уже второе условие. Если оно возвращает ложь, то программа переходит к предпоследнему else. Если и второе логическое выражение возвращает истину (true), то программа идет к третьему условию. При его соблюдении выполняется тело самого вложенного оператора if. При его несоблюдении сработает самое вложенное else.
Несмотря на то, что данная программа кажется длиннее, в определенных ситуациях она может выполняться быстрее, чем первая. Здесь если внешнее if возвращает ложь, то остальные логические выражения вообще не проверяются. В первой программе могут и проверяться (это зависит от особенностей языка программирования).
Видео:ВСЕ ТИПЫ 2 заданий | Информатика ЕГЭ 2023 | Виктория Ланская | УмскулСкачать
Задача 2 треугольник информатика
Откройте файл электронной таблицы, содержащей в каждой строке три натуральных числа.
Определите, сколько среди заданных троек чисел таких, которые могут быть сторонами прямоугольного треугольника.
Заметим, что треугольник является прямоугольным, если квадрат длины гипотенузы треугольника будет равен сумме квадратов длин катетов этого треугольника. Тогда в ячейке D1 запишем формулу =(МАКС(A1:C1))^2 и скопируем её во все ячейки диапазона D2:D5000. В ячейке E1 запишем формулу
и скопируем её во все ячейки диапазона E2:E5000. Таким образом, получим квадрат длины гипотенузы и сумму квадратов катетов для каждой тройки чисел. После этого в ячейку F1 запишем формулу =ЕСЛИ(D1=E1;1;0) и скопируем её во все ячейки диапазона F2:F5000. Теперь, воспользовавшись формулой =СУММ(F1:F5000), получим ответ — 2.
💡 Видео
Задание 2 | ЕГЭ по информатике | ДЕМО-2024Скачать
Задание 2 // КЕГЭ по информатике 2023Скачать
ЕГЭ по информатике - Задание 2 (Мощнейший метод!)Скачать
ЗАДАНИЕ №2 за 129 СЕКУНД на Python // ЕГЭ информатика 2024Скачать
Математика это не ИсламСкачать
Разбор 2 задания | Информатика ОГЭ 2023 | УмскулСкачать
Задание 2 // ЕГЭ по информатике 2022Скачать
Разбор 2 задания | ОГЭ по информатике 2023Скачать
Решение 2 задание егэ информатика: матлогика - руками и кодом l Коля Касперский из ВебиумаСкачать
ЗАДАНИЕ 2 | ТРИ СПОСОБА | ЕГЭ ИНФОРМАТИКА 2023Скачать
Разбор 13.2 задания | ОГЭ по информатике 2023Скачать
Решение задания №2. Демоверсия ЕГЭ по информатике - 2023Скачать
Как получить 20.000$ от CHAT GPT? #викторияланская #умскул #егэ2023 #егэинформатика #информатикаСкачать
Логическая функция F || 2 задача || ЕГЭ ИнформатикаСкачать
Задания 9-10 | ЕГЭ по информатике | ДЕМО-2023Скачать
Решение простых задач на python | Площадь и периметр прямоугольного треугольникаСкачать
Таблицы / Эксель / Задания №9 и №3 | Информатика ЕГЭ 2023 | УмскулСкачать
Таблица Истинности С НУЛЯ. Задание 2 ЕГЭ Информатика | Артем Пальчиков.Онлайн школа EXAMhackСкачать