当前位置:首页 C++ > 正文

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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击