• 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

     1 package com.hone.basical;
     2 
     3 import java.util.Scanner;
     4 
     5 /**
     6  * 原题目:https://www.patest.cn/contests/pat-b-practise/1023
     7  * @author Xia
     8  * 核心:
     9  */
    10 
    11 public class basicalLevel1023MinNum{
    12     public static void main(String[] args) {
    13         Scanner s = new Scanner(System.in);
    14         int[] nums = new int[10];
    15         for (int i = 0; i < 10; i++) {
    16             nums[i] = s.nextInt();            //利用数组表示i的个数
    17         }
    18         //保证第一位非零
    19             for (int i = 1; i < nums.length; i++) {
    20                 if (nums[i]!=0) {
    21                     System.out.print(i);
    22                     nums[i]--;
    23                     break;
    24                 }
    25                 
    26             }
    27             //输出零的个数
    28             for (int i = 0; i < nums[0]; i++) {
    29                 System.out.print(0);
    30             }
    31             //将零以外的都输出 个数为零的可以自己处理
    32             for (int i = 1; i < nums.length; i++) {
    33                 for (int j = 1; j <= nums[i]; j++) {
    34                     System.out.print(i);
    35                 }
    36             }
    37             System.out.println();
    38         }
    39 } 
  • 相关阅读:
    为什么编程是独一无二的职业
    TSQL 编程规范
    Windows实战Git环境配置msysGit+TortoiseGit
    Linux环境下Socket编程
    数据持久化
    Javascript类的定义和引用
    详解C中volatile关键字
    ACM HDU 1040 As Easy As A+B
    ACM POJ 1753Flip Game
    ACM HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/xiaxj/p/7978915.html
Copyright © 2020-2023  润新知