zoukankan      html  css  js  c++  java
  • PAT 1023 组个最小数

    题目

    /*
     给定数字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
     */
    

    思路

    // 非零元素存入 string,放到另一个string
    // 对第一个排序,再插入第二个
    

    代码

    #include<string>
    #include <iostream>
    
    using namespace std;
    
    int main(){
    	
    //	输入
    	int n0;
    	
    	cin >> n0;
    	string str;
    	int n;
    	for (int i = 1; i < 10; ++i) {
    		cin >> n;
    		
    		if (n > 0) {
    			str.append(n,i+'0');
    		}
    	}
    	if (n0 > 0) {
    		if (str.size() > 0) {
    			str.insert(1, n0,'0');
    		}else{
    			str.append("0");
    		}
    	}
    	
    	cout << str << endl;
    	
    	
    }
    
  • 相关阅读:
    来自师兄的Django2.0笔记摘录
    2019-03-24 周日
    关于Djanggo的环境变量
    接口文档模板(Markdown)
    Nginx配置
    虚拟机和宿主机通信
    node+mongodb+win7
    【进击后端】linux安装最新版nodejs
    【进击后端】ubuntu 快速安装node mongodb express
    【进击后端】mongodb入门
  • 原文地址:https://www.cnblogs.com/tangyikejun/p/4300367.html
Copyright © 2011-2022 走看看