Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 245
#1

Разложение числа на слагаемые - C++

04.01.2014, 11:21. Просмотров 289. Ответов 0
Метки нет (Все метки)

Дано целое число S и натуральное N (N>1). Создать массив из 2N целых чисел, так, чтобы сумма всех элементов равнялась S, но чтобы никакая сумма двух элементов из первой и второй половины массива не повторялась бы.

Например, если S=21; N=3;
То искомый массив M[6]={1, 2, 9, 0, 3, 6};

сумма всех элементов равна 21
1+2+9+0+3+6 = 21

попарные суммы (1,4,7,2,5,8,9,12,15) не повторяются:
1+0=1; 1+3=4; 1+6=7; 2+0=2; 2+3=5; 2+6=8; 9+0=9; 9+3=12; 9+6=15;

Если «в лоб»… то можно через random, подобрать 2N разных слагаемых, пока не получим желаемую сумму. Затем суммировать, комбинируя в парах, элементы первой и второй половины. Если повторений нет, то решение найдено. Если повторения есть, то всё сначала.
Согласен, что это тупой алгоритм … Но ничего другого пока в голову не пришло. Может подскажете как более рационально подобрать такие слагаемые?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2014, 11:21     Разложение числа на слагаемые
Посмотрите здесь:

Разложение числа на слагаемые - C++
Разложение числа на слагаемые - используется во многих задачах (как мне кажется - это тривиальная задача). И мне стало интересно: какой...

Разложение на слагаемые - C++
На входе у нас число (нат, пол) которое нужно разложить и ожидаймое количество слагаймых алгоритм решения таков..выделяем место для...

Разложение на слагаемые - C++
Подскажите идею для написания программы, желательно с рекурсией: Дано натуральное число n. Небходимо вывести все возможные варианты...

разложение на все возможные слагаемые - C++
требуется разложить число, вводимое с клавиатуры и не большее 45, на слагаемые от 1 до 9 Добавлено через 6 минут (разными вариантами...

Найти все слагаемые заданного числа - C++
Задача: Дано число n, отобразить его всевозможные k слагаемые. Может у кого есть готовая задача или кто может помочь? Заранее спасибо.

Подсчитать количество различных разбиений числа N на натуральные слагаемые - C++
Условие: требуется подсчитать количество различных разбиений числа N на натуральные слагаемые. Два разложения считаются различными, если...

разложение числа - C++
Как ,допустим, разложить число 1924 на 1 9 2 4. Даже идей нет

Разложение числа - C++
вот написал прогу которая которая должна разложить число N на множители по массиву M и К где М {1,5,10,50,100} а К мы должны сами найти....

Разложение числа - C++
Число можно разложить по 5 и по 3, то есть если это допустим 8 то выйдет 5 и 3, причем не должно быть остатка, допустим 22 можно разложить...

Разложение числа - C++
Всем привет! Есть некое число N и массив arr (k - размер массива). Нужно написать программу, которая выведет на экран все возможные...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru