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

С помощью рекурсивной функции разменять заданную сумму денег на монеты заданного номинала

13.12.2023, 22:31. Показов 396. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С помощью рекурсивной функции разменять заданную сумму денег на монеты заданного номинала, имеющиеся только в одном экземпляре (или заданном пользователем количестве для монеты каждого номинала). Если разменять таким образом сумму невозможно, вывести соответствующее сообщение. Без использования векторов.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.12.2023, 22:31
Ответы с готовыми решениями:

Рекурсивно определить, мржно ли заданную сумму денег разменять монетами по 3, 10, 15 копеек
Добрый день. Подскажите, пожалуйста, где ошибка в решении следующей задачи: написать программу, которая рекурсивно позволяет определить,...

С рекурсивной функции разложить заданную суму грошей на монеты заданной марки(или задать количество марок монет)
С помощью рекурсивной функции разложить заданную суму грошей на монеты заданной марки, или задать количество марок монет (5 коп, 2 коп) и...

С помощью рекурсивной функции вычислить сумму
Дано натуральное n, действительные a1,a2,...,an.С помощью рекурсивной функции вычислить сумму a1*a2+a2*a3+...+an-1*an. Программный код...

2
 Аватар для igorrr37
2869 / 2016 / 991
Регистрация: 21.12.2010
Сообщений: 3,724
Записей в блоге: 15
14.12.2023, 04:41
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
#include <iostream>
 
bool found = false;
 
void f(int sum, int a, int aCnt, int b, int bCnt, int c, int cCnt)
{
    if (sum == 0)
    {
        found = true;
    }
    else
    {
        if (aCnt && !found)
        {
            f(sum - a, a, aCnt - 1, b, bCnt, c, cCnt);
            if (found)
            {
                std::cout << a << " ";
            }
        }
        if (bCnt && !found)
        {
            f(sum - b, a, aCnt, b, bCnt - 1, c, cCnt);
            if (found)
            {
                std::cout << b << " ";
            }
        }
        if (cCnt && !found)
        {
            f(sum - c, a, aCnt, b, bCnt, c, cCnt - 1);
            if (found)
            {
                std::cout << c << " ";
            }
        }
    }
}
 
int main()
{
    int sum = 14, a = 10, aCnt = 3, b = 5, bCnt = 3, c = 3, cCnt = 3;
    f(sum, a, aCnt, b, bCnt, c, cCnt);
}
1
...
 Аватар для anmartex
1910 / 1329 / 966
Регистрация: 12.02.2013
Сообщений: 2,172
14.12.2023, 05:31
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
#include <iostream>
#include <queue>
#include <set>
 
bool calculate(unsigned sum, const std::deque<unsigned>& coins, std::deque<unsigned>& result ) {
    static std::set<std::deque<unsigned>::const_iterator> mark;
 
    if (sum == 0) {
        return true;
    } else if (sum < 0) {
        return false;
    }
 
    for (auto it = coins.begin(); it != coins.end(); ++it) {
        if (mark.find(it) == mark.end()) {
            mark.insert(it);
            if (calculate(sum - *it, coins, result)) {
                result.push_back(*it);
                mark.erase(it);
                return true;
            }
            mark.erase(it);
        }
    }
    return false;
}
 
int main() {
    std::deque<unsigned> coins = { 1, 1, 2, 2, 5, 10, 10 };
    std::deque<unsigned> result;
    unsigned sum = 28;
 
    if (calculate(sum, coins, result)) {
        for (const auto& it : result) {
            std::cout << it << ' ';
        }
        std::cout << std::endl;
    } else {
        std::cerr << "did not work out ..." << std::endl;
    }
 
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2023, 05:31
Помогаю со студенческими работами здесь

С помощью рекурсивной функции получить сумму n элементов
С помощью рекурсивной функции получить сумму n элементов последовательности 1^k+2^k+3^k+…+n^k VBA Заранее благодарю!!!

С помощью рекурсивной функции получить сумму n элементов последовательности
С помощью рекурсивной функции получить сумму n элементов последовательности 1+2+3+…+n Спасибо за раннее)

С помощью рекурсивной функции получить сумму n элементов последовательности
Привет всем.) Попался код: Sub lab8_v2() Range(&quot;B2&quot;).Value = sum(Range(&quot;B1&quot;).Value) End Sub Function sum(n) As...

С помощью рекурсивной функции получить сумму n элементов последовательности
Помогите, пожалуйста! С помощью рекурсивной функции получить сумму n элементов последовательности 1+2+3+…+n

С помощью рекурсивной функции рассчитать сумму всех двохзначних чисел
С помощью рекурсивной функции рассчитать сумму всех двохзначних чисел


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru