Рубрики

Java-программа для обмена монет

При заданном значении N, если мы хотим внести изменения в N центов, и у нас есть бесконечный запас каждой из монет с достоинством S = {S1, S2, .., Sm}, сколько способов мы можем внести изменение? Порядок монет не имеет значения.

Например, для N = 4 и S = {1,2,3} существует четыре решения: {1,1,1,1}, {1,1,2}, {2,2}, {1, 3}. Таким образом, выходное значение должно быть 4. Для N = 10 и S = {2, 5, 3, 6} существует пять решений: {2,2,2,2,2}, {2,2,3,3}, {2,2,6}, {2,3,5} и {5,5}. Поэтому на выходе должно быть 5.

Джава

/ * Динамическое программирование Java-реализации Coin

   Изменить проблему * /

import java.util.Arrays;

  

class CoinChange

{

    static long countWays(int S[], int m, int n)

    {

        // Временная сложность этой функции: O (mn)

  

        // таблица [i] будет хранить количество решений

        // для значения i. Нам нужно n + 1 строк, так как таблица

        // построен снизу вверх с использованием базы

        // case (n = 0)

        long[] table = new long[n+1];

  

        // Инициализируем все значения таблицы как 0

        Arrays.fill(table, 0);   //На)

  

        // Базовый случай (если задано значение 0)

        table[0] = 1;

  

        // Собираем все монеты одну за другой и обновляем таблицу []

        // значения после индекса больше или равны

        // стоимость выбранной монеты

        for (int i=0; i<m; i++)

            for (int j=S[i]; j<=n; j++)

                table[j] += table[j-S[i]];

  

        return table[n];

    }

  

    // Функция драйвера для проверки вышеуказанной функции

    public static void main(String args[])

    {

        int arr[] = {1, 2, 3};

        int m = arr.length;

        int n = 4;

        System.out.println(countWays(arr, m, n));

    }

}
// Этот код предоставлен Панкаджем Кумаром

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

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

Java-программа для обмена монет

0.00 (0%) 0 votes