首页 > 其他分享 >PAT Basic 1023. 组个最小数

PAT Basic 1023. 组个最小数

时间:2023-03-13 15:12:03浏览次数:41  
标签:count 输出 PAT 数字 1023 res 最小 组个

PAT Basic 1023. 组个最小数

1. 题目描述:

给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。

现给定数字,请编写程序输出能够组成的最小的数。

2. 输入格式:

输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。

3. 输出格式:

在一行中输出能够组成的最小的数。

4. 输入样例:

2 2 0 0 0 3 0 0 1 0

5. 输出样例:

10015558

6. 性能要求:

Code Size Limit
16 KB
Time Limit
200 ms
Memory Limit
64 MB

思路:

为了组成最小数,需要尽可能把较小数字放在高位,这里就是从小到大输出数字。要额外处理下'0'开头的情况,这里我是把第一个不是'0'的字符与首位互换,代码还可以优化,不需要用while循环到达第一个非零字符,因为已经知道'0'的个数。

不知道当时怎么写出来的。。。现在回看怎么感觉好多题都想不出来,这个我一开始还以为是要把第一个非零字符输出完后,再输出'0'字符,想简单了。

My Code:

#include <stdio.h>

int main(void)
{
    char res[51];
    int digitCount[10] = {0};
    int i=0, j=0, count=0;
    
    for(i=0; i<10; i++)
        scanf("%d", &digitCount[i]);
    
    for(i=0; i<10; i++)
    {
        for(j=digitCount[i]; j>0; j--)
        {
            res[count++] = i + '0';
        }
    }
    res[count] = '\0';
    
    if(digitCount[0]) //handle 'the first digit equal zero' case
    {
        count = 0;
        while(res[count] == '0')
            count++;
        res[0] = res[count];
        res[count] = '0';
    }
    
    printf("%s\n", res);
    
    return 0;
}

标签:count,输出,PAT,数字,1023,res,最小,组个
From: https://www.cnblogs.com/tacticKing/p/17211463.html

相关文章

  • SAP UI5 里一个功能的 compatibility version 是什么含义?
    在SAPUI5中,兼容版本(CompatibilityVersion)指的是应用程序在不同版本的SAPUI5中的运行兼容性。由于SAPUI5不断更新和演进,新版本可能会对应用程序的某些功能和接口......
  • STATA: 系统路径 ssc path应用
    //1.显示stata的系统路径.sysdirSTATA:D:\Stata17\//stata软件的安装位置BASE:D:\Stata17\ado\base\//stata官方的命令及说明帮助文件SITE:D......
  • 利用pip/conda安装库时,出现requires XXX, which is not installed/incompatible
    出现以下提示警告时step1step2step3总结利用pip/conda安装库时,出现requiresXXX,whichisnotinstalled/incompatible依次执行安装所缺的库即可(如有版本对应......
  • PAT Basic 1021. 个位数统计
    PATBasic1021.个位数统计1.题目描述:给定一个 \(k\) 位整数 \(N=d_{k−1}10^{k−1}+⋯+d_110^1+d_0 (0≤d_i≤9, i=0,⋯,k−1, d_{k−1}>0)\),请编写程序统计每......
  • PAT Basic 1020. 月饼
    PATBasic1020.月饼1.题目描述:月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量......
  • PAT Basic 1019. 数字黑洞
    PATBasic1019.数字黑洞1.题目描述:给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得......
  • 在chrome-console中进行xpath/css/js定位(六)
    1.xpathconsole中调用xpath的基本格式:$x("xpath表达式")1.1绝对定位与相对定位绝对定位:$x("/xpath表达式")相对定位:$x("//xpath表达式") 1.2通配符与不包含筛......
  • 【PAT】2020年秋季考试划水准备贴
    1、环境1、时间PAT一年有三次考试,春季(2-3),秋季(8-9)和冬季(11-12)本次考试时间:2020/09/0513:30:002、地点PAT在非浙江地区(比如上海),往往都只有一个考点这次报名是在SHU,环境有D......
  • PAT甲级题目对应知识点分类梳理
    PAT甲级的106道题的知识点与对应的题号整理如下,便于做专项练习和巩固!1、数据结构可以用STL系列栈:1051堆:1098队列:1014、1056链表:1032、1052、1074、1097、1133并查集:110......
  • Node.js入门(4):内置模块 path
    前言上文讲解了Node.js的CommonJS规范,它主要用来解决模块化的问题。从本文开始将会介绍Node.js常用的模块,包括内置模块以及好用,好玩的第三方模块。本篇简单介绍下​......