c++将1~n个整数按照字典序进行排序
作者:野牛程序员:2023-12-22 08:50:47 C++阅读 2470
整数从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++实现