Код кодового замка

Пытаюсь решить старую программу кодового замка. Вопрос ниже. Я написал некоторый код, но пока он печатает только набор возможных комбинаций, которые всегда содержат первое число, имеющее 36. Я, честно говоря, очень запутался в том, где взять его туда, где он должен быть.

«Представьте, что вам нужно открыть стандартный замок с кодовым набором, но вы не знаете комбинацию и у вас нет пары болторезных станков. Напишите программу на Java в BlueJ с методом, который печатает все возможные комбинации, чтобы вы могли распечатать их на лист бумаги и отметьте каждый из них по мере попытки. Предположим, что номера на каждом циферблате находятся в диапазоне от нуля до тридцати шести, и для открытия замка требуются три последовательных числа. Предположим, замок не очень хороший и любой число, которое не более чем на два от правильного числа в каждой цифре, также будет работать. Другими словами, если комбинация 17-6-32, то 18-5-31, 19-4-32, 15-8-33 и многие другие комбинации также открывают замок. Напишите другой метод, который распечатает минимальный список комбинаций, которые вам понадобятся, чтобы гарантировать открытие замка ".

     /**
     * A method that prints all possible combinations of the lock.
     */
    public void combination(int combo)
    {
        int a;
        int b;
        int c;
        a = 0;
        while (a <= 36)
                {b = 0;
                while (b <= 36)
                    {c = 0;
                    while (c <= 36)
                    {
                        System.out.println(a + " " + b + " " + c);
                        c = c + 1;
                    }
                    b = b + 1;
                }
                a = a + 1;
                }
    }
}

Я думаю, что цикл while - это проблема для 36, всегда находящегося в первой цифре?

Hentendo 21.04.2018 13:12
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
1 684
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша программа работает нормально. Я предполагаю, что происходит то, что BlueJ ограничивает размер консоли. Перейдите к Options и включите Unlimited Buffering. Это должно позволить вам увидеть все возможные комбинации. Если вы отлаживаете его и проходите через него построчно, вы видите, что выводятся все комбинации, но из-за ограничения на количество отображаемых строк это выглядит так, как будто первое число всегда 36, потому что вы получаете только последнее такое количество строк.

Боковое примечание: вы никогда не используете параметр combo int, который вы передаете в комбинацию (), поэтому на вашем месте я бы просто удалил его.

Я все еще полностью озадачен последним. «Напишите другой метод, который распечатает минимальный список комбинаций, которые вам понадобятся, чтобы гарантировать открытие замка».

Hentendo 21.04.2018 16:32

Извините, я не совсем понимаю ... скорее всего, потому что я упорно учился весь день: / Я завершил вторую часть, со всеми комбинациями в пределах 2 цифр комбинации, я изменил начальное значение на 2 и добавленная стоимость ++ 3 ;. Я просто ломаю голову, пытаясь придумать способ распечатать минималистичный список комбинаций.

Hentendo 21.04.2018 16:41

Думаю, поэтому я могу запутаться. ха-ха Он говорит, что нужно создать еще один метод после того, как два от одного. «Напишите другой метод, который распечатает минимальный список комбинаций, которые вам понадобятся, чтобы гарантировать открытие замка».

Hentendo 21.04.2018 16:47

Верный. А теперь мне нужен третий метод, который распечатает минималистичный список. Я пытаюсь понять это, но теперь я начинаю думать, что это бессмысленный вопрос, учитывая другие 2 метода.

Hentendo 21.04.2018 16:49

Хорошо, я думаю, я запутался, ха-ха. Большое спасибо за то, что нашли время мне помочь. Все еще новичок в программировании, но это так весело!

Hentendo 21.04.2018 17:08

Другие вопросы по теме