Вопрос по информатике
Анонимный
2 года назад

C++ векторы

Помогите пожалуйста написать код или хотя-бы примерно сказать с чего нужно начать:')
В этом коде нужно задействовать векторы...

Вот сама задача:

Изначально в стопке A лежат n карт с номерами от 1 до n (верхняя карта номер 1, нижняя карта номер n). Карты помещаются в стопку Б следующим образом:
1) Возьмите верхнюю карту из стопки А и положите ее в стопку Б.
2) Из обеих стопок мы берем первую карту сверху и кладем ее в конец этой стопки.
3) Если в стопке A больше нет карт, тогда тасовка завершена, иначе возвращаемся к шагу номер 1).

Распечатайте порядок (сверху вниз) карточек в стопке Б.

Например:
если мы введём 7 то ответ будет 1,3,5,7,4,2,6
если мы введём 19 то ответ будет 1,3,5,7,9,11,13,15,17,19,4,8,12,16,2,10,18,14,6

Ответы 1

Відповідь:

Интересная задачка

Пояснення:

#include <iostream>

using namespace std;

void fillA(int *A,int n){

for(int i = 0; i < n; i++){

 A[i] = i + 1;

}

}

void fillB(int *A,int *B,int n){

for(int j = 0; j < n; j++){

 B[j] = A[j];

 for(int i = 0; i < n - 1; i++){

  A[i] = A[i + 1];      

 }

 A[n - 1] = A[j];

}

}

void printB(int *B,int n){

for(int i = 0; i < n; i++){

 cout << B[i] << " ";

}

}

int main(){

setlocale(LC_ALL, "Rus");

int n;

cout << "Введите кол-во карт в стопке A: ";

cin >> n;

int *A = new int[n];

int *B = new int[n];

fillA(A,n);

fillB(A,B,n);

printB(B,n);

delete[] A;

delete[] B;

return 0;        

}

Премиум статус
Получайте самые быстрые
ответы на свои вопросы
У вас остались
вопросы?