Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
YRELIS
0 / 0 / 1
Регистрация: 16.06.2015
Сообщений: 41
Завершенные тесты: 1
1

Enum Перечисление

20.11.2016, 14:31. Просмотров 300. Ответов 6
Метки нет (Все метки)

Есть номиналы монет, которые занесены в 2 перечисления (enum): рубли и монеты. Набрать определенную сумму минимальным количеством монет.
Можете подсказать, как в программе применить enum и как его связать с программой?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2016, 14:31
Ответы с готовыми решениями:

Перечисление enum
Здравствуйте. Хотелось бы узнать, возможно ли "пройтись" по всем значениям...

Enum перечисление переменных и присвоение им значений
добрый день, работаю в среде qt, застала проблема в оптимизации кода, хочу...

Enum == int !=enum?
enum Flags{ Flag1 = 1, Flag2 = 2}; int main() { Flags a = Flag1, b =...

Перечисление в BC++
В русском языке как, правило после букв Ж, Ч, Ш, Щ, пишется И, А, У, а не Ы, Я,...

перечисление месяцев
написать консольную программу на С++, которая использует перечисление для...

6
YRELIS
0 / 0 / 1
Регистрация: 16.06.2015
Сообщений: 41
Завершенные тесты: 1
13.12.2016, 02:31  [ТС] 2
Написал, если кому понадобится то вот код:
C
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
using namespace std;
enum coin { i = 50, s = 20, ee = 10, eee = 5, v = 2, y = 1 };
enum rubli {a = 500, b = 200, c = 100, d = 50, e = 20, g = 10, h = 5, k = 2, m = 1};
int main()
{
    int nominal = 0;
    int nooominal = 0;
    int sum = 0;
    int suum = 0;
    setlocale(LC_ALL, "Russian");
    cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
    cout << "Введите сумму денег: ";
    cin >> sum;
    suum = sum;
    cout << "****************************************" << endl;
 
 
 
    
    nominal = sum / i;
    cout << "Номинал монеты: " << i << "  ";
    cout << "Количество монет: " << nominal << endl;
    int aa = nominal;
    sum = sum % i;
 
    nominal = sum / s;
    cout << "Номинал монеты: " << s << "  ";
    cout << "Количество монет: " << nominal << endl;
    int bb = nominal;
    sum = sum % s;
 
    nominal = sum / ee;
    cout << "Номинал монеты: " << ee << "  ";
    cout << "Количество монет: " << nominal << endl;
    int cc = nominal;
    sum = sum % ee;
 
    nominal = sum / eee;
    cout << "Номинал монеты: " << eee << "   ";
    cout << "Количество монет: " << nominal << endl;
    int dd = nominal;
    sum = sum % eee;
 
    nominal = sum / v;
    cout << "Номинал монеты: " << v << "   ";
    cout << "Количество монет: " << nominal << endl;
    int jj = nominal;
    sum = sum % v;
 
    nominal = sum / y;
    cout << "Номинал монеты: " << y << "   ";
    cout << "Количество монет: " << nominal << endl;
    int zz = nominal;
    sum = sum % y;
    cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
    int iii=aa + bb + cc + dd + jj + zz;
    cout << "Минимальное кол.:" <<  iii << endl;
    cout << "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" << endl;
 
    nooominal = suum / a;
    cout << "Номинал рубля: " << a << "  ";
    cout << "Количество рублей: " << nooominal << endl;
    suum = suum % a;
 
    nooominal = suum / b;
    cout << "Номинал рубля: " << b << "   ";
    cout << "Количество рублей: " << nooominal << endl;
    suum = suum % b;
 
    nooominal = suum / c;
    cout << "Номинал рубля: " << c << "   ";
    cout << "Количество рублей: " << nooominal << endl;
    suum = suum % c;
 
    nooominal = suum / d;
    cout << "Номинал рубля: " << d << "   ";
    cout << "Количество рублей: " << nooominal << endl;
    suum = suum % d;
    nooominal = suum / e;
    cout << "Номинал рубля: " << e << "  ";
    cout << "Количество рублей: " << nooominal << endl;
    suum = suum % e;
 
    nooominal = suum / g;
    cout << "Номинал рубля: " << g << "   ";
    cout << "Количество рублей: " << nooominal << endl;
    suum = suum % g;
 
    nooominal = suum / h;
    cout << "Номинал рубля: " << h << "   ";
    cout << "Количество рублей: " << nooominal << endl;
    suum = suum % h;
 
    nooominal = suum / k;
    cout << "Номинал рубля: " << k << "   ";
    cout << "Количество рублей: " << nooominal << endl;
    suum = suum % k;
 
    nooominal = suum / m;
    cout << "Номинал рубля: " << m << "   ";
    cout << "Количество рублей: " << nooominal << endl;
    suum = suum % m;
    return 0;
}
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4770 / 2427 / 680
Регистрация: 18.10.2014
Сообщений: 4,147
13.12.2016, 04:38 3
Цитата Сообщение от YRELIS Посмотреть сообщение
Написал, если кому понадобится то вот код:
Ничего не понял.

Во-первых, что за "сумма денег" вводится? В каких единицах?

Во-вторых, почему задача решается независимо в рублях и копейках?

В-третьих, а вот пусть нам даны номиналы монет { 1, 3, 4, 5 } и надо набрать сумму 7 копеек. Ваш алгоритм говорит, что минимальное количество монет - три, т.е. 5+1+1, а на самом деле сумму можно набрать всего двумя монетами: 3+4.
0
_Ivana
13.12.2016, 04:46
  #4

Не по теме:

Похоже, алгоритм жадный до монет...

0
YRELIS
0 / 0 / 1
Регистрация: 16.06.2015
Сообщений: 41
Завершенные тесты: 1
13.12.2016, 12:12  [ТС] 5
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Во-первых, что за "сумма денег" вводится? В каких единицах?
это вводиться какое то определённое число денег например 5621
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Во-вторых, почему задача решается независимо в рублях и копейках?
Так было задумано лично в моей задаче!
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
на самом деле сумму можно набрать всего двумя монетами: 3+4
программа так и наберёт, не знаю что у вас там не так.
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
4770 / 2427 / 680
Регистрация: 18.10.2014
Сообщений: 4,147
13.12.2016, 18:06 6
Цитата Сообщение от YRELIS Посмотреть сообщение
программа так и наберёт, не знаю что у вас там не так.
Не надо выдумывать.

Я еще раз повторяю: если нам даны номиналы монет { 1, 3, 4, 5 } и надо набрать сумму 7 копеек, то ваш алгоритм скажет, что минимальное количество монет - три, т.е. 5+1+1, а правильный ответ - две монеты: 3+4.
0
maxm
63 / 35 / 25
Регистрация: 17.07.2014
Сообщений: 457
13.12.2016, 18:26 7
Правильно, ведь это задача Комивояжера, и она, как известно, NP-полная.
0
13.12.2016, 18:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2016, 18:26

Перечисление переменных
int startPos = 0, endPos; Вот так записать можно? У меня вроде работает, а...

Не работает перечисление
Сам код: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std;...

Перечисление в структуре
Здравствуйте! Я создала перечисление в структуре struct DCBSettings { ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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