#include <iostream>
#include <cstdlib>
#include <ctime>
#include <vector>
#include <algorithm>
#include <set>
#define MAX_VALUE 2000000
#define MAX_OUTPUT 1999999 // 输出的最大值
#define N 25000 // 需要生成的随机数的数量
int main() {
srand(time(NULL)); // 设置随机数种子
std::vector<int> numbers; // 存储生成的随机数
std::set<int> unique_numbers; // 存储去重后的结果
int count = 0;
// 循环直到生成 25000 个随机数
while (count < N) {
int num = rand() % (MAX_VALUE + 1); // 生成一个范围在 [0, MAX_VALUE] 的随机数
numbers.push_back(num);
count++;
}
std::random_shuffle(numbers.begin(), numbers.end()); // 打乱数字顺序
for (std::vector<int>::iterator it = numbers.begin(); it != numbers.end(); ++it) {
int num = *it;
int multiplier = (rand() % 3); // 随机选择 0, 1, 或 2 对应乘数 1, 10, 100
int result = num * (multiplier == 0 ? 1 : (multiplier == 1 ? 10 : 100));
// 确保结果不超过 MAX_OUTPUT
if (result <= MAX_OUTPUT) {
// 保证不重复,如果已经存在该结果,则跳过
if (unique_numbers.find(result) == unique_numbers.end()) {
unique_numbers.insert(result);
// 每个数字输出一行
std::cout << result << std::endl;
}
}
}
return 0;
}