Дана 1, 2 , 5 и 10 литровые банки. Для заполнения N литровой банки какими банками нужно пользоваться? - QBasic

Узнай цену своей работы

Формулировка задачи:

Дана 1, 2 , 5 и 10 литровые банки. Для заполнения N литровой банки какими банками нужно пользоваться? Программа должна вывести все возможное варианты заполнения N литровой банки.

Решение задачи: «Дана 1, 2 , 5 и 10 литровые банки. Для заполнения N литровой банки какими банками нужно пользоваться?»

textual
Листинг программы
DIM n1 AS LONG, n2 AS LONG, n5 AS LONG, n10 AS LONG, n AS LONG
n = 20
FOR n10 = n \ 10 TO 0 STEP -1
  FOR n5 = (n - n10 * 10) \ 5 TO 0 STEP -1
    FOR n2 = (n - n10 * 10 - n5 * 5) \ 2 TO 0 STEP -1
        n1 = n - n10 * 10 - n5 * 5 - n2 * 2
        PRINT n; " = ";
        IF n10 THEN PRINT " +"; n10; "* 10";
        IF n5 THEN PRINT " +"; n5; "* 5";
        IF n2 THEN PRINT " +"; n2; "* 2";
        IF n1 THEN PRINT " +"; n1; "* 1";
        PRINT
NEXT n2, n5, n10

Объяснение кода листинга программы

В этом коде рассматривается задача о том, как с помощью каких банок можно заполнить банку объемом N литров. В начале определяются объемы банок: 1, 2, 5 и 10 литров. Затем переменной N присваивается значение 20, поскольку именно столько литров необходимо набрать. Далее в цикле перебираются все возможные комбинации банок для получения 20 литров. Внешний цикл идет от 20 литров, деленных на 10 (то есть 2 банки по 10 литров), до 0, с шагом -1. Это означает, что мы начинаем с 2 банок по 10 литров, а затем переходим к 1 банке по 10 литров, 2 банкам по 5 литров и так далее, пока не достигнем 0, что означает использование всех имеющихся банок. Внутренний цикл идет от (20 - 10 литров) деленных на 5 (то есть 2 банки по 5 литров), до 0, с шагом -1. Это означает, что мы начинаем с 2 банок по 5 литров, а затем переходим к 1 банке по 5 литров, 2 банкам по 2 литра и так далее, пока не достигнем 0. Еще один внутренний цикл идет от (20 - 10 литров - 5 литров) деленных на 2 (то есть 2 банки по 2 литра), до 0, с шагом -1. Это означает, что мы начинаем с 2 банок по 2 литра, а затем переходим к 1 банке по 2 литра, 2 банкам по 1 литру и так далее, пока не достигнем 0. Наконец, внешний, внутренний и еще один внутренний циклы используются для вычисления количества банок каждого размера, которые нужно использовать, и затем выводится результат. Если какая-либо банка нужна, ее размер добавляется к общему результату. В результате выполнения этого кода вы получите все возможные комбинации банок, которые могут быть использованы для получения 20 литров, вместе с количеством каждой банки, необходимой для достижения этого объема.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.75 из 5
Похожие ответы