酷代码 AI
菜单
服务商

小明把 ( 为偶数)张牌按编号顺序 n$ 排成一堆,然后开始洗牌。 洗牌的方法是将牌一分为二,然后交错相插在一起。 例如 初始时状态:1 2 3 4 5 6 洗牌后状态:1 4 2 5 3 6 洗牌过程总共重复了 次,请你编程帮助小明模拟洗牌的过程。 输入 正整数 (牌的数量), (洗牌的次数)。1 ≤ n, k ≤ 1,000, 保证 是偶数。 输出 张牌洗牌 次后, 个位置牌的编号分别是多少? 样例输入 复制 6 2 样例输出 复制 1 5 4 3 2 6

```cpp #include <iostream> #include <vector> using namespace std; int main() { int n, k; cin >> n >> k; vector<int> cards(n); for (int i = 0; i < n; i++) { cards[i] = i + 1; } for (int t = 0; t < k; t++) { vector<int> temp(n); int mid = n / 2; int index = 0; for (int i = 0; i < mid; i++) { temp[index++] = cards[i]; temp[index++] = cards[mid + i]; } cards = temp; } for (int i = 0; i < n; i++) { cout << cards[i]; if (i != n - 1) cout << " "; } cout << endl; return 0; } ``` [2026-01-02 18:55:42 | AI问答 | 205点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多