有2张纸牌(卡纸A和卡纸B),卡纸A有n张卡,从上到下从1到n进行编号,卡纸B是空的。需要应用三个规则:
1)将卡片组A的顶卡放在卡片组B的顶部 2)从卡座A切换顶部卡和底部卡,对卡座B进行相同操作 3)如果卡片组A中还剩卡片,请继续执行前两个规则
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> deckA;
vector<int> deckB;
for (int i = 0; i < n; i++) {
deckA.push_back(i+1);
}
for (int i = 0; i < n; i++) {
deckB.insert(deckB.begin(), deckA[0]);
deckA.erase(deckA.begin());
rotate(deckA.begin(), deckA.begin() + 1, deckA.end());
rotate(deckB.begin(), deckB.begin() + 1, deckB.end());
}
for (int i = 0; i < n; i++) {
cout << deckB[i];
if (i != n-1) {
cout << ",";
}
}
}
我正在表达:结束后无法寻求向量迭代。我敢肯定我会错了。任何帮助表示赞赏。