Хотя существует много способов генерации двоичной последовательности, здесь задача, по-видимому, была преднамеренно усложнена (или сделана интересной) из-за ограничения на изменение кода только в указанном месте и инициализации каждой последующей строки с содержимымпредыдущего.
Массивы не служат никакой другой цели, кроме как заставить вас думать - это чисто академическое упражнение, а не практическое применение.Каждая строка инициализируется с содержанием предыдущей строки (которую должен изменить код, который вы должны добавить), цель этого упражнения - выполнить двоичное «добавить 1» на каждой итерации.
Чтобы сделать это, начиная с LSB (rij[n][2]
), если цифра ZERO
, вы устанавливаете ее в ЕДИНИЦУ, затем переходите к следующей n
, иначе вы устанавливаете ее в НУЛЬ, и«переносить» один, повторяя описанный выше процесс для следующего старшего значащего бита в строке n
.
. Вы можете сделать это в цикле от индекса LSB (2) до индекса MSB (0),и выход из цикла (break
) при установке любого бита на ONE
.
Или только для трех цифр вы можете развернуть цикл таким образом:
if( rij[n][2] == ZERO )
{
rij[n][2] = ONE ;
}
else
{
rij[n][2] = ZERO ;
if( ... // test next bit [1] - enough of a hint I think.