Дана 1, 2 , 5 и 10 литровые банки. Для заполнения N литровой банки какими банками нужно пользоваться? - QBasic
Формулировка задачи:
Решение задачи: «Дана 1, 2 , 5 и 10 литровые банки. Для заполнения N литровой банки какими банками нужно пользоваться?»
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 литров, вместе с количеством каждой банки, необходимой для достижения этого объема.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д