Проблема делителей положительного целого числа N с рекурсиейC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Проблема делителей положительного целого числа N с рекурсией

Сообщение Anonymous »


Осталось немного доделать задачу, буду благодарен, если вы мне поможете. N - целое положительное число; Мне нужно найти целые числа A, B, C и D, такие, что они являются делителями N и N = A + B + C + D; Если четверок чисел несколько, то стоит вывести такие, чтобы их произведение было максимальным: (A*B*C*D)max. Если таких четверок нет, необходимо вывести «-1».

Я изложу свои мысли по решению этой проблемы, возможно, вы подскажете более эффективный алгоритм:

Я понимаю, что проблему можно решить с помощью рекурсии с использованием рекурсивного дерева. Например: целое число N = 8, тогда делители будут {1, 2, 4}, 8 я отсюда исключил, потому что второе условие о сумме не будет выполнено. Будем собирать делители в вектор до тех пор, пока количество ребер в компоненте связности графа не достигнет 3. Сначала я выведу все возможные четверки таких чисел в этом примере. Мой код на C++:

#include использование пространства имен std; voidsolve(vector div, вектор v) { for(int i = 0; i < div.size(); ++i) { v.push_back(div); если (v.size() == 4) { cout
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»