Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 0
Регистрация: 15.10.2018
Сообщений: 10

Рекурсия: представить переданное натуральное число в виде суммы не более чем 7 кубов других натуральных чисел

15.10.2018, 01:19. Показов 21391. Ответов 0

Студворк — интернет-сервис помощи студентам
Задача

Напишите программу, которая представляет переданное натуральное число в виде суммы не более чем 7 кубов других натуральных чисел.

Формат ввода

Входная строка содержит целое число N, которое нужно представить в виде суммы кубов.

Формат вывода

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

Примеры

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Тест 1
Входные данные:
5
 
Вывод программы:
1 1 1 1 1
 
 
 
Тест 2
Входные данные:
22
 
Вывод программы:
0
 
 
 
Тест 3
Входные данные:
9
 
Вывод программы:
8 1
Мое кривое решение:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from math import *
 
n = int(input())
c = n
a = []
t = 3
while c > 0:
    x = trunc(float('{0:.11f}'.format((c ** (1 / 3)))))
    a.append(x ** 3)
    c -= x ** 3
if len(a) > 7:
    a.clear()
    while n > 0:
        if t > 0:
            x = trunc(float('{0:.11f}'.format((n ** (1 / 3))))) - 1
            a.append((x ** 3))
            n -= (x ** 3)
            t -= 1
        else:
            x = trunc(float('{0:.11f}'.format((n ** (1 / 3)))))
            a.append((x ** 3))
            n -= (x ** 3)
    if len(a) > 7:
        print(0)
        exit(0)
    else:
        print(*a)
        exit(0)
else:
    print(*a)

Суть проблемы
Не всегда необходимо брать первые кубы наибольшими. Тогда не будут проходить тесты для таких чисел, как 34, 41, 60 и т.д.. Необходимо как-то реализовать идеальный подбор.

*знаю, что мое решение не имеет рекурсии, но она там должна быть *

Добавлено через 40 минут
В итоге почти часик посидел и решил. Вот код, может быть, кому-нибудь поможет, особенно на coursera, как мне

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from math import *
 
 
def solve(n, a, t):
    c = n
    d = t
    while c > 0:
        if d > 0:
            x = trunc(float('{0:.11f}'.format((c ** (1 / 3))))) - 1
            d -= 1
        else:
            x = trunc(float('{0:.11f}'.format((c ** (1 / 3)))))
        if x <= 1:
            x = trunc(float('{0:.11f}'.format((c ** (1 / 3)))))
        if d > x:
            print(0)
            exit(0)
        a.append(x ** 3)
        c -= x ** 3
        if len(a) > 7:
            a.clear()
            solve(n, a, t + 1)
    print(*a)
    exit(0)
 
 
a = []
n = int(input())
t = 0
solve(n, a, t)
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.10.2018, 01:19
Ответы с готовыми решениями:

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

Сколькими способами заданное натуральное число N можно представить в виде суммы двух кубов натуральных чисел?
Вот описание задания: Сумма кубов. Сколькими способами заданное натуральное число N можно представить в виде суммы двух кубов натуральных...

Сколькими способами заданное натуральное число N можно представить в виде суммы двух кубов натуральных чисел
Собственно, нужна помощь. Сколькими способами заданное натуральное число N можно представить в виде суммы двух кубов натуральных...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2018, 01:19
Помогаю со студенческими работами здесь

найти наименьшее натуральное число n, которое можно представить в виде суммы кубов двух натуральных чисел
Найти наименьшее натуральное число n, которое можно представить в виде суммы кубов двух натуральных чисел

Вывести наименьшее натуральное число, которое можно представить двумя разными способами в виде суммы кубов двух натуральных чисел
Помогите пожалуйста, я не знаю в чём дело, почему она выдаёт такое количество значений. #include &lt;stdio.h&gt; #include...

Вывести наименьшее натуральное число, которое можно представить двумя раз- ными способами в виде суммы кубов двух натуральных чисел
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; int main() {int i,j,l,k,n; Помогите пожалуйста изменить программу, чтобы...

Данное число представить в виде суммы кубов двух натуральных чисел
напишите программу !дано натуральное число в виде суммы кубов двух натуральных чисел!

Определить, можно ли представить число N в виде суммы кубов трех натуральных чисел
Определить можно ли представить заданное натуральное число N как сумму кубов каких-нибудь трех натуральных чисел n, m, k. ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru