1 条题解

  • 0
    @ 2025-10-30 11:17:06

    思路分析

    1. 任务拆解:

    • 读取数字个数n
    • 读取n个一位数
    • 将数字按从小到大排序
    • 处理前导0问题
    • 输出最小的n位整数

    2. 关键点分析:

    • 要组成最小整数,需要将较小的数字放在高位
    • 但不能以0开头,需要找到第一个非0数字与首位交换
    • 先升序排序,再处理前导0的特殊情况
    • 首位不能为0,需要与第一个非0数字交换

    3. 步骤规划: 第一步:读取数字个数n 第二步:循环读取n个一位数 第三步:对数组进行升序排序 第四步:找到第一个非0数字的位置 第五步:将第一个非0数字与首位交换 第六步:输出交换后的数字序列

    4. 代码对应:

    • cin>>n:读取数字个数
    • 第一个for循环:输入n个一位数
    • sort(a+1,a+n+1):升序排序
    • 第二个for循环:找到第一个非0数字的位置xi
    • if(a[i]!=0):判断是否为非0数字
    • swap(a[xi],a[1]):将第一个非0数字与首位交换
    • 输出循环:输出组成的最小整数

    【入门】n个一位数能够组成的最小数

    信息

    ID
    517
    时间
    1000ms
    内存
    32MiB
    难度
    6
    标签
    (无)
    递交数
    608
    已通过
    182
    上传者