Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.70/40: Рейтинг темы: голосов - 40, средняя оценка - 4.70
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532

Разложение в сумму кубов

06.10.2020, 14:50. Показов 8676. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано натуральное число N. Необходимо представить его в виде суммы точных кубов, содержащей наименьшее число слагаемых. Программа должна вывести это число слагаемых.

Входные данные
Программа получает на вход натуральное число N, не превосходящее 10^6.

Выходные данные
Программа должна вывести единственное натуральное число.

Данный алгоритм работает только при положительных кубах, а нужно и при отрицательных.
Пример:
19 = 27 - 8

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
N = int(input())
lst1 = [1]
lst2 = []
i = 1
res = 0
while True:
    i += 1
    if i**3 <= N:
        lst1.append(i)
    else: break
while N != 0:
    for s in lst1:
        lst2.append(N / (s ** 3))
    for i in sorted(lst2):
        if i >= 1:
            k = i
            break
    res += 1
    N -= lst1[lst2.index(k)] ** 3
    lst2.clear()
print(res)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.10.2020, 14:50
Ответы с готовыми решениями:

Разложение числа на сумму двух/трех кубов целых чисел
Всем доброго утра) Приму посильную помощь в изучении языка Питон, основанную на решении некоторых задач. &quot;Определить, можно ли...

Найти сумму кубов
Сумма кубов По данному натуральном n вычислите сумму 1^3+2^3+3^3++n^3. Примеры входные данные 1 выходные данные 1 входные...

Посчитать сумму кубов нечетных чисел от 1 до 100
помогите написать программу которая посчитает сумму кубов нечетных чисел от 1 до 100

42
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
06.10.2020, 15:44
и какова сложность данного алгоритма?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38162 / 21097 / 4306
Регистрация: 12.02.2012
Сообщений: 34,684
Записей в блоге: 14
06.10.2020, 18:16
Цитата Сообщение от Miryz Посмотреть сообщение
Программа должна вывести единственное натуральное число.
- какое?
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
09.10.2020, 21:26  [ТС]
Catstail,
Цитата Сообщение от Miryz Посмотреть сообщение
Программа должна вывести это число слагаемых.
вот это. Мое решение довольно корявое, да и видимо задача не предполагает отрицательные кубы. Написал рекурсивную функцию, но она не проходит по времени.
Python
1
2
3
4
5
6
7
8
9
10
11
N = int(input())
F = []
for i in range(1, N+1):
    F[i] =  F[i-1] + 1
    k = 2
    while k**3 <= i:
        x = F[i-k**3]
        if F[i] > x:
            F[i] = x + 1
        k += 1
print(F[N])
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.10.2020, 21:33
А где рекурсивная функция? Это похоже на ДП.

Добавлено через 1 минуту
у меня на таком числе:
int('1234567890'*1000)
работает на моем компе за:
0:01:38.442992 времени
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
09.10.2020, 21:35  [ТС]
Цитата Сообщение от eaa Посмотреть сообщение
0:01:38.442992 времени
что именно?
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.10.2020, 21:37
мое решение, с рекурсией.
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
09.10.2020, 21:37  [ТС]
eaa, можно взглянуть?
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.10.2020, 21:39
Цитата Сообщение от Miryz Посмотреть сообщение
Написал рекурсивную функцию
давайте сначала взглянем на Вашу рекурсивную функцию.
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
09.10.2020, 21:41  [ТС]
eaa, не могу составить ядро функции...
Именно алгоритм
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.10.2020, 21:49
А тут отрицательные нужны, я думал положительные только.
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
09.10.2020, 21:52  [ТС]
eaa,
Цитата Сообщение от Miryz Посмотреть сообщение
да и видимо задача не предполагает отрицательные кубы
не уверен
0
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
09.10.2020, 21:59
Ну если для маленьких чисел (примерно до 10^9), то можно взять код с темы Разложение числа на сумму двух/трех кубов целых чисел и добавить туда отрицательные числа. Вроде работает.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n = int(input('Введите число: '))
a = []
b = []
for i in range(-1000,1000):
    x,y,z,k = i%10, (i%100)//10, i//100, i//10
    if i > 99:
        if (x**3 + y**3 + z**3 == n) and not x in a and not y in a and not z in a:
            print('{}³+{}³+{}³={}'.format(x,y,z,n))
            a.append(x)
            a.append(y)
            a.append(z)
    else:
        if (x**3 + k**3 == n) and not x in b and not k in b:
            print('{}³+{}³={}'.format(x,k,n))
            b.append(x)
            b.append(k)
А нет, надо доработать немного. Ибо это программа будет искать только до суммы трех кубов, но это уже не сложно, наверное.
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
09.10.2020, 22:03
Fury67, например 4, 5, 6 ?..
0
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
09.10.2020, 22:04
Gdez, не понял, можно подробнее?
0
 Аватар для Miryz
291 / 131 / 58
Регистрация: 24.11.2019
Сообщений: 532
09.10.2020, 22:04  [ТС]
Fury67, не подходит
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
09.10.2020, 22:04
В теории для положительных до 9 слагаемых
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.10.2020, 22:05
Minimum number of cubes whose sum equals to given number N
на geeks, для твоих ограничений должно хватить.
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
09.10.2020, 22:05
Fury67, не раскладывается числа 4... по коду
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
09.10.2020, 22:06
Цитата Сообщение от Gdez Посмотреть сообщение
В теории для положительных до 9 слагаемых
это где?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.10.2020, 22:06
Помогаю со студенческими работами здесь

Найти сумму кубов всех целых чисел от 20 до 40
Найти сумму кубов всех целых чисел от 20 до 40.

В промежутке от 15 до 115 найти сумму квадратов чисел, кратных трем, и сумму кубов чисел, кратных пяти
В промежутке от 15 до 115 найти сумму квадратов чисел, кратных трем, и сумму кубов чисел, кратных пяти. Помогите пожалуйста на...

Вычислить сумму S квадратов четных и кубов нечетных чисел от 1 до n
вычислить сумму S квадратов четных и кубов нечетных чисел от 1 до n

Разложение в сумму кубов
Доброго времени суток! Есть такая задача. Дано натуральное число N. Необходимо представить его в виде суммы точных кубов, содержащей...

Разложение числа на сумму трех кубов
Помогите пожалуйста с задачкой, заранее спасибо. Представить число в виде суммы кубов 3х чисел


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru