c++将1~n个整数按照字典序进行排序
作者:野牛程序员:2023-12-22 08:50:47 C++阅读 2828
整数从1到n按照字典序排序的C++代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
// 函数声明
void dfs(int current, int n, std::vector<int>& result);
// 主函数
int main() {
int n;
std::cout << "请输入整数n:" << std::endl;
std::cin >> n;
std::vector<int> result;
// 从第一个数字1开始进行深度优先搜索
for (int i = 1; i <= 9; ++i) {
dfs(i, n, result);
}
// 输出排序结果
for (int num : result) {
std::cout << num << " ";
}
return 0;
}
// 深度优先搜索函数
void dfs(int current, int n, std::vector<int>& result) {
// 如果当前数字大于n,直接返回
if (current > n) {
return;
}
// 将当前数字加入结果集
result.push_back(current);
// 递归处理下一层级的数字
for (int i = 0; i <= 9; ++i) {
int next = current * 10 + i;
if (next <= n) {
dfs(next, n, result);
} else {
break;
}
}
}这段代码使用深度优先搜索(DFS)来生成1到n的整数,并按照字典序进行排序。请注意,该代码中使用了一个递归的dfs函数,其中current表示当前的数字,n表示上限,result是存储结果的容器。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++ 排列和字典序全排列解析
- 下一篇:组合数学字典序C++实现
