Ханойская башня с массивами C++

110
25 марта 2022, 19:30

Можете объяснить мне как реализовать это с массивами, представьте эти стержни и кольца так:

5,4,3,2,1
0,0,0,0,0
0,0,0,0,0

Тем же методом которую мы делаем в Ханойских башнях делаем и здесь и итог должен выглядеть так:

0,0,0,0,0
0,0,0,0,0
5,4,3,2,1

Уже третий день я ломаю голову над этим

Условия которые может делать совершать программа с массивами: - Можно за одно действие брать из массива только одно число; - Брать элемент массива можно только с конца; - Перебрасывать значение из одного массива можно только в другой массив; - При перебрасывание, значение пропускает все нули в конец; - Число можно перебросить в другой массив, только в условии есть позиция куда оно попадает будет соответствовать требованию что элемент слева больше чем наше значение;

Answer 1

Вроде так, нет?

int A[5] = { 5, 4, 3, 2, 1 };
int B[5], C[5];
void print()
{
    for(int i = 0; i < 5; ++i) cout << A[i] << " "; cout << "  ";
    for(int i = 0; i < 5; ++i) cout << B[i] << " "; cout << "  ";
    for(int i = 0; i < 5; ++i) cout << C[i] << " "; cout << endl;
}
void move(int count, int * F, int * T, int * A)
{
    if (count == 0) return;
    move(count-1, F, A, T);
    //F -> T
    int t = 4; while(T[t]==0 && t >= 0) t--;
    int f = 4; while(F[f]==0) f--;
    T[t+1] = F[f];
    F[f] = 0;
    print();
    move(count-1, A, T, F);
}
int main(int argc, const char * argv[])
{
    print();
    move(5,A,C,B);
    print();
}
READ ALSO
c++ переопределение оператора + с использованием конструкции {x, y}

c++ переопределение оператора + с использованием конструкции {x, y}

Подскажите, можно ли реализовать следующую вещь:

99
Выдвигающееся меню PyQt

Выдвигающееся меню PyQt

Возможно ли реализовать выдвигающееся меню нa Pyqt5 ?!

98
Слово класс в аргументе функции

Слово класс в аргументе функции

Первый раз встретил данную конструкцию, когда class в параметрах функции и не могу понять для чего оно используется?

170
Оператор in &gt;&gt; в собственном классе строк

Оператор in >> в собственном классе строк

Реализовал класс строк, и сделал оператор >> , когда ввожу строчку с пробелами , например а ааыаыв аы, то выводит только первый символ, то бишь...

106