public List sort(int n, int m) { int[] a = new int[n]; int count = 1; //转换成数组 for (int i = 0; i < a.length; i++) { a[i] = count; count++; } //重新赋值变量 count = 1; List list = new ArrayList(); //建立一个死循环 for (int i = 0; true; i++) { //表示循环了一遍数组 重新赋值 进行循环 if (i == n) { i = -1; continue; } //如果当前下标为-1 代表这个数 被删除了 if (a[i] == -1) { continue; } if (count % m == 0) { list.add(a[i]); //设置为-1代表此元素被删除 a[i] = -1; } //如果此数组的长度等于n 代表所有数都被添加到了list中 if (list.size() == n) { return list; } count++; } } 转换为c++代码
时间: 2024-02-10 08:26:09 浏览: 87
华为OD机试C卷- 田忌赛马(Java & JS & Python & C).md-私信看全套OD代码及解析
以下是将给定的Java代码转换为C++代码的示例:
```cpp
#include <iostream>
#include <vector>
std::vector<int> sort(int n, int m) {
std::vector<int> a(n);
int count = 1;
// 转换为数组
for (int i = 0; i < a.size(); i++) {
a[i] = count;
count++;
}
// 重新赋值变量
count = 1;
std::vector<int> list;
// 建立一个死循环
for (int i = 0;; i++) {
// 表示循环了一遍数组,重新赋值进行循环
if (i == n) {
i = -1;
continue;
}
// 如果当前下标为-1,代表这个数被删除了
if (a[i] == -1) {
continue;
}
if (count % m == 0) {
list.push_back(a[i]);
// 设置为-1代表此元素被删除
a[i] = -1;
}
// 如果此数组的长度等于n,代表所有数都被添加到了list中
if (list.size() == n) {
return list;
}
count++;
}
}
int main() {
int n = 10, m = 3;
std::vector<int> result = sort(n, m);
// 打印排序结果
for (int i : result) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}
```
请注意,该示例只是将Java代码转换为C++代码,并未对代码进行优化或错误处理。在实际使用中,可能需要根据需求进行适当的修改和改进。
阅读全文