Рубрики

C / C ++ Программа для Жадного алгоритма, чтобы найти минимальное количество монет

При заданном значении V, если мы хотим внести изменения для V Rs, и у нас есть бесконечный запас каждого из наименований в индийской валюте, т.е. у нас есть бесконечный запас {1, 2, 5, 10, 20, 50, 100 , 500, 1000} ценные монеты / купюры, какое минимальное количество монет и / или купюр необходимо для внесения изменений?

Примеры:

Input: V = 70
Output: 2
We need a 50 Rs note and a 20 Rs note.

Input: V = 121
Output: 3
We need a 100 Rs note, a 20 Rs note and a 
1 Rs coin. 

// C ++ программа для поиска минимального количества конфессий
#include <bits/stdc++.h>

using namespace std;

  
// Все деноминации индийской валюты

int deno[] = { 1, 2, 5, 10, 20, 50, 100, 500, 1000 };

int n = sizeof(deno) / sizeof(deno[0]);

  
// Драйвер программы

void findMin(int V)

{

    // Инициализировать результат

    vector<int> ans;

  

    // Пройдите через всю деноминацию

    for (int i = n - 1; i >= 0; i--) {

        // Найти деноминации

        while (V >= deno[i]) {

            V -= deno[i];

            ans.push_back(deno[i]);

        }

    }

  

    // Распечатать результат

    for (int i = 0; i < ans.size(); i++)

        cout << ans[i] << "  ";

}

  
// Драйвер программы

int main()

{

    int n = 93;

    cout << "Following is minimal number of change for " << n << " is ";

    findMin(n);

    return 0;

}

Выход:

Following is minimal number of change for 93 is 50  20  20  2  1

Пожалуйста, обратитесь к полной статье о алгоритме жадности, чтобы найти минимальное количество монет для более подробной информации!

Рекомендуемые посты:

C / C ++ Программа для Жадного алгоритма, чтобы найти минимальное количество монет

0.00 (0%) 0 votes