zoukankan      html  css  js  c++  java
  • PAT (Basic Level) Practise (中文) 1023. 组个最小数 (20)

    1023. 组个最小数 (20)

    时间限制
    100 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CAO, Peng

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

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

    输入格式:

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

    输出格式:

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

    输入样例:
    2 2 0 0 0 3 0 0 1 0
    
    输出样例:
    10015558
     
    
    解题思路:
    
    ·利用数组a[0],..a[9]储存0...9数字出现的次数
    ·首先组成的数字首位不能为零,同时要求数字最小,即输出最小的非零数,同时将该数的次数减一
    ·输出所有的“0”。
    ·从1开始从小到大按其次数输出所有数字
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int a[10], i, j;
    	for ( i=0; i<10; i++ )
    		cin >> a[i];//a[i]记录0至9出现的次数 
    	for ( i=1; i<10; i++ )//输出最小的非零数 
    		if ( a[i] )
    		{
    			cout << i;//输出后次数减一并终止循环 
    			a[i]--;
    			break;
    		}
    	for ( i=0; i<a[0]; i++ )
    		cout << "0";//输出所有零 
    	for ( i=1; i<10; i++ )
    		for ( j=0; j<a[i]; j++ )
    			cout << i;//从小到大按其次数输出所有 
    	cout << endl;
    	return 0;
    }



  • 相关阅读:
    webpy安装
    windows 上jenkins slave 执行脚本提示成功,但是没有运行
    jenkins slave上执行脚本报错
    python selenium2 动态调试
    maven配置阿里云国内仓库
    jenkins部署报404错误
    elipse常用插件下载
    jenkins部署
    国内开源镜像站
    最大公约数
  • 原文地址:https://www.cnblogs.com/fayne/p/7224814.html
Copyright © 2011-2022 走看看