Задать вопрос
30 июля, 20:27

Вася хочет представить число 2018 в виде суммы кубов натуральных чисел, содержащих наименьшее количество слагаемых. Помогите ему это сделать.

В качестве ответа выведите слагаемые суммы в порядке возрастания, разделяя их одинарными пробелами. Например, для числа 10 представление с наименьшим количеством слагаемых есть 8+1+1 (8 - это 2 в кубе, 1 - это 1 в кубе), поэтому в качестве ответа нужно было бы вывести такой набор чисел: 1 1 8. Если возможных ответов с представлением числа в виде наименьшего возможного количества слагаемых несколько, выведите любой.

+1
Ответы (1)
  1. 30 июля, 23:56
    0
    Идея решения: если можно использовать только 1^3, то ответ очевиден, дальше пытаемся узнать, не станет ли лучше, если разрешить использовать 2^3, 3^3 и т. д.

    Программа на python 3, решающая эту задачу для произвольного n (в условии n = 2018) :

    n = int (input ())

    lens = list (range (n + 1))

    max_terms = [1] * (n + 1)

    t = 2

    while t**3 < = n:

    max_term = t**3

    for k in range (max_term, n + 1) :

    if lens[k] > 1 + lens[k - max_term]:

    lens[k] = 1 + lens[k - max_term]

    max_terms[k] = max_term

    t + = 1

    for_print = []

    for _ in range (lens[n]) :

    for_print. append (max_terms[n])

    n - = max_terms[n]

    print (*for_print[::-1])
Знаете ответ?
Сомневаетесь в ответе?
Найдите правильный ответ на вопрос ✅ «Вася хочет представить число 2018 в виде суммы кубов натуральных чисел, содержащих наименьшее количество слагаемых. Помогите ему это ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы
Похожие вопросы по информатике
Задача 1 - Дано целое число. Если оно положительное, вывести " Число положительное ", если отрицательное вывести "Число отрицательное ", если равно 0 - "Число равно нулю" задача 2 - дано целое число.
Ответы (1)
С # 1. Создайте одномерный массив с 31 элементов, которые заполните случайными целыми числами от 11 до 100-11. Выведите значения элементов массива в строку, разделив их пробелами, 11 нечетное число.
Ответы (1)
1. for + random a. вывести случайное количество случайных чисел b. вывести на экран 10 случайных чисел c. вывести на экран 10 случайных чисел, значение которых лежит в отрезке [0,10] d.
Ответы (1)
Выберите верные правила для ввода текста. Выберите несколько из 5 вариантов ответа: 1) Дефис отделяется пробелами с двух сторон, а тире пробелами не отделяется. 2) Между словами ставится один пробел.
Ответы (2)
Сколько в ряду натуральных чисел есть отрезков (то есть, подряд идущих чисел) таких, что сумма всех чисел этого отрезка равна 1000? В качестве ответа выведите одно натуральное число, например, 2.
Ответы (1)