Можете объяснить мне как реализовать это с массивами, представьте эти стержни и кольца так:
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
Уже третий день я ломаю голову над этим
Условия которые может делать совершать программа с массивами: - Можно за одно действие брать из массива только одно число; - Брать элемент массива можно только с конца; - Перебрасывать значение из одного массива можно только в другой массив; - При перебрасывание, значение пропускает все нули в конец; - Число можно перебросить в другой массив, только в условии есть позиция куда оно попадает будет соответствовать требованию что элемент слева больше чем наше значение;
Вроде так, нет?
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();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Подскажите, можно ли реализовать следующую вещь:
Первый раз встретил данную конструкцию, когда class в параметрах функции и не могу понять для чего оно используется?
Реализовал класс строк, и сделал оператор >> , когда ввожу строчку с пробелами , например а ааыаыв аы, то выводит только первый символ, то бишь...