mgrunova
?>

С клавиатуры вводите четыре произвольных числа , Найти сумму кратных трем (в паскале)

Информатика

Ответы

olyaartemenko
Заходим в PascalABC.NET и читаем в Справке:

function Find<T>(self: array of T; p: T->boolean): T; extensionmethod;
        Выполняет поиск первого элемента в массиве, удовлетворяющего предикату. Если не найден, возвращается нулевое значение соответствующего типа

Теперь переведем это на общепонятный язык.
Во-первых, не существует процедуры Find в языке PascalABC.NET.
Во-вторых, имеется функция Find, реализующая так называемое расширение, т.е. которая в тексте программы следует непосредственно за точкой.
Если имеется одномерный массив А, содержащий элементы некоторого типа, то конструкция A.Find(лямбда-выражение типа boolean) позволяет найти в массиве А первый в порядке следования элемент, подстановка значения которого в лямбда-выражение сделает это выражение истинным. Не знаете, что такое лямбда-выражение? Ну что же, я не могу в ответе рассказывать теорию "лямбд", да и вопрос был не об этом.
Середа-Сергеенков980
1. Определим наибольшее натуральное число, куб которого не превышает 2019. ∛2019 ≈ 12.6; отбрасывая дробную часть, получаем 12.
2. Выпишем набор натуральных чисел от 1 до 12 и их кубов:
1-1, 2-8, 3-27, 4-64, 5-125, 6-216, 7-343, 8-512, 9-729, 10-1000, 11-1331, 12-1728
3. Определим при "жадного" алгоритма набор кубов, дающий в сумме 2019 (из 2019 поочередно вычитаем.максимально возможные кубы):
2019-1728=291, 291-216=75, 75-64=11, 11-8=3, а 3 - это три раза по 1. Получаются кубы чисел 12, 6, 4, 2, 1, 1, 1 - всего СЕМЬ чисел.
4. Попытаемся улучшить найденное решение, отбрасывая те, которые найдут семь и более чисел.

Если взять число 11³=1331, то 2019-1331=688 и нужно составить его из кубов не более, чем 5 чисел.
688-512=176, 176-125=51, 51-27=24 ... и слишком длинно.
688-2×343=2, 2-1=1, 1-1=0 - 4 числа.
Улучшенное решение: 2019 = 11³+7³+7³+1³+1³

Лучшего решения нет.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

С клавиатуры вводите четыре произвольных числа , Найти сумму кратных трем (в паскале)
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Андрееевич787
Aleksei1463
Мусаев Игоревич371
gumirovane2294
razumeiko0790
kisuhakisa
соловьев_Куркина
Lolira64
Анатольевич-Фатима
sn009
Ofelya1308
shilinmikhaillg
osipovasalex5316
skvorec3424
ecocheminnov437