以下是用 C++ 实现的解决此问题的代码: ```cpp #include <iostream> int findKthNumber(int n, int k) { int oddCount = (n + 1) / 2; int evenCount = n / 2; if (k <= oddCount) { return 2 * k - 1; } else { return 2 * (k - oddCount); } } int main() { int n, k; std::cout << "请输入序列长度 n: "; std::cin >> n; std::cout << "请输入要查找的位置 k: "; std::cin >> k; int result = findKthNumber(n, k); std::cout << "重排后的第 " << k << " 个数是: " << result << std::endl; return 0; } ``` 在上述代码中,首先计算出奇数的个数 `oddCount` 和偶数的个数 `evenCount` 。然后判断要查找的位置 `k` 在前半部分(奇数部分)还是后半部分(偶数部分)。如果在奇数部分,直接返回 `2 * k - 1` ;如果在偶数部分,返回 `2 * (k - oddCount)` 。 [2024-11-13 20:25:03 | AI写代码神器 | 299点数解答]