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

Комбинации с монеток - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузите операцию << для класса http://www.cyberforum.ru/cpp-beginners/thread204682.html
Собственно говоря,сама задача: Перегрузите операцию << для класса , который будет просить ввести любую строку, а затем должен опять вывести её на экран но без больших букв и цифр
C++ Довести до ума программу про бинарному дереву Здравствуйте. Помогите пожалуйста привести до ума задачу: организовать бинарное дерево по заданной последовательности и функцию включения элемента в это дерево. Результат напечатать при прохождении дерева в прямом порядке. Вот что у меня имеется: * Функция которая за заданным массивом организовывает бинарное дерево: bntrp build (int a, int n) { bntrp p; int c; p = NULL; if... http://www.cyberforum.ru/cpp-beginners/thread204671.html
C++ Найти самый большой элемент Массива
Помогите с заданием не как не могу сообразить С помощью датчика случайных чисел сформировать два массива X и Y размерностью 100 и 200 чисел в диапазоне от 0 до 1 и от 0 до 10 соответственно. По массиву Х - найти самый большой элемент и вывести его и его номер на экран, по массиву Y - самый маленький. Вот что смог написать: #include "stdafx.h" #include <conio.h>
Сколько раз робот пересекал свой путь C++
На плоскости находится робот, в памяти которого записана программа. Эта программа представляет собой последовательность чисел, каждое число - отдельная команда. Неотрицательное число означает сделать такое количество шагов вперед, число -1 - повернуть налево на 90 градусов, стоя на месте, а число -2 означает повернуть вправо на 90 градусов. После окончания движения робота оказалось, что он ни...
C++ пользовательские функции http://www.cyberforum.ru/cpp-beginners/thread204641.html
Помогите решить задачи в С++ (я в этом начиющий): 1)Вывести на экран таблицу степеней двойки: 2, где n изменяется от -к до 10. Операцию возведения целого числа в целую степень оформить в виде функции.(Пользователькие функции) 2)Из положительных значений двух целочисленных массивов различной размерности сформировать общий массив. Найти среднее арифметическое элементов, расположенных в массиве до...
C++ Три вопроса от чайника по С++ Здравствуйте, 1. Как возможно присвоить один массив другому? Или придется перегружать7 2. Как конструкцию в Basic можно переделать в с++ Select Case s Case Is <= 0: Ko = 1 Case Is >= 1: Ko = 0 Case Else: Ko = s End Select подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
06.12.2010, 20:10     Комбинации с монеток
Цитата Сообщение от Mayonez Посмотреть сообщение
Ввод:
4 1 2 5 10 3
Вывод: 19
Реализовывать здесь алгоритм (который сейчас опишу) можно и массивами и векторами (во втором случае получится быстрее и экономичнее по используемой памяти).
Итак есть 4 номинала: 1 2 5 10
И есть К равное 3 (максимально взятое число монет из копилки).
Расмотрим сначало взятие 1 монеты из копилки. В данном случае суммы которые могут получится такие:
1 2 5 10 - назовем это первой строкой.
Теперь найдем 2 строку (какие суммы могут получится при взятии 2-х монет из копилки). Здесь нужно учитывать результаты из предыдущей строки (из первой). Итак перебираем возможные номиналы, которые можем взять. Берем первый номинал - это 1. Вторая строка пока получается такой:
2 3 6 11 - текущие значения второй строки (получились в результате сложения значения первой строки и рассматриваемого номинала).
Далее берем второй номинал - это 2. Теперь вторая строка получается такая:
2 3 4 6 7 11 12- текущие значения второй строки (получились в результате сложения значения первой строки и рассматриваемого номинала, если уже такие значения есть, то их не повторяем).
Далее берем третий номинал - это 5. Теперь вторая строка получается такая:
2 3 4 6 7 10 11 12 15- текущие значения второй строки (получились в результате сложения значения первой строки и рассматриваемого номинала, если уже такие значения есть, то их не повторяем).
Далее берем четвертый номинал - это 10. Теперь вторая строка получается такая:
2 3 4 6 7 10 11 12 15 20 - окончательные значения второй строки (получились в результате сложения значения первой строки и рассматриваемого номинала, если уже такие значения есть, то их не повторяем).
Т. е. вторая строка получилась:
2 3 4 6 7 10 11 12 15 20 - т.е. такие суммы могут получится если взять две монетки.
Теперь формируем третью строку (по тому же принципу):
Берем первый номинал - 1. Третья строка:
3 4 5 7 8 11 13 16 21
Берем второй номинал - 2. Третья строка:
3 4 5 6 7 8 9 11 12 13 14 16 17 21 22
Берем третий номинал - 5. Третья строка:
3 4 5 6 7 8 9 11 12 13 14 15 16 17 20 21 22 25
Берем четвертый номинал - 10. Третья строка:
3 4 5 6 7 8 9 11 12 13 14 15 16 17 20 21 22 25 30
Окончательные значения третьей строки:
3 4 5 6 7 8 9 11 12 13 14 15 16 17 20 21 22 25 30 - все возможные значения сумм. Их кол-во - 19 и есть ответ.
Сможете реализовать код или помочь?
 
Текущее время: 15:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru