组个最小数(Java)

2023-10-26

题目描述:

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

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

输入描述:

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

输出描述:

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

解题思路:

首先接收所有的数,创建一个整数数组count,用来存储0~9的个数。然后分为两种情况,0的个数为0和0的个数不为0.

如果0的个数为0,那么从1依次遍历,只要count[i]大于0,就输出i,同时count[i]--,直到输完所有的数字i。

如果0的个数不为0,由于0不能做做首位,因此先从1开始遍历,直到找到第一个个数不为0(count[i]!=0)的数字,输出该数字,同时count[i]--.然后输出所有的0。此时0的个数为0,后续操作和0的个数为0时的操作相同。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int[] count=new int[10];
        for(int i=0;i<10;i++){
            count[i]=sc.nextInt();
        }
        //判断是否有0,如果没有0,则依次输出个数不为0的数字,直到该数字个数为0为止。
        if(count[0]==0){
            for(int i=0;i<10;i++){
                while(count[i]>0){
                    System.out.print(i);
                    count[i]--;
                }
            }
        }else{
            //如果有数字0,则先查找第一个数字不为0的数字,输出并个数--。其次输出所有的0,最后再从1开始,依次输出个数不为0的数字,直到该数字个数为0为止。
            for(int i=1;i<10;i++){
                if(count[i]!=0){
                    System.out.print(i);
                    count[i]--;
                    break;
                }
            }
            while(count[0]>0){
                System.out.print(0);
                count[0]--;
            }
            for(int i=1;i<10;i++){
                while(count[i]>0){
                    System.out.print(i);
                    count[i]--;
                }
            }
        }
    }
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组个最小数(Java) 的相关文章

  • vue2使用国际化语言vue-i18n

    1 安装 npm install vue i18n 或 yarn add vue i18n 2 引用 在main js中引用 import VueI18n from vue i18n Vue use VueI18n 运行项目 报错 由于使用
  • 网络流之最大流和最小割

    最大流问题 最大流 给定有向图中每条边的最大流量 容量 求从源点到汇点的最大流量 容量网络 括号左边代表容量 右边代表流量 残留网络 流网络中剩余可增加的流量 增广路 满足容量条件的一条流量不为零的路径 增广路定理 设容量网络G V E 的
  • 转: Windows 批处理大全

    批处理文件是无格式的文本文件 它包含一条或多条命令 它的文件扩展名为 bat 或 cmd 在命令提示下键入批处理文件的名称 或者双击该批处理文件 系统就会调用Cmd exe按照该文件中各个命令出现的顺序来逐个运行它们 使用批 处理文件 也被

随机推荐

  • 【云原生之Docker实战】使用Docker部署NodeBB社区平台

    云原生之Docker实战 使用Docker部署NodeBB社区平台 一 NodeBB 二 检查本地docker环境 1 检查docker版本 2 检查docker状态 3 检查docker compose版本 三 下载NodeBB镜像 四
  • 方差(variance)、标准差(Standard Deviation)、均方差、均方根值(RMS)、均方误差(MSE)、均方根误差(RMSE)

    方差 variance 衡量随机变量或一组数据时离散程度的度量 概率论中方差用来度量随机变量和其数学期望 即均值 之间的偏离程度 统计中的方差 样本方差 是每个样本值与全体样本值的平均数之差的平方值的平均数 概率论中的方差表示方法 样本方差
  • Javascript设计模式-07-观察者模式(发布订阅模式)

    Javascript设计模式 07 观察者模式 发布订阅模式 简介 观察者模式又叫发布订阅模式 他定义了一种一对多的关系 让多个观察者对象同时监听某一个主体对象 这个主体对象发生改变时就会通知所有观察者 使得他们能够自动更新自己 提供一种抽
  • 多维时序

    多维时序 MATLAB实现Attention LSTM 注意力机制长短期记忆神经网络 多输入单输出 目录 多维时序 MATLAB实现Attention LSTM 注意力机制长短期记忆神经网络 多输入单输出 基本介绍 模型背景 LSTM模型
  • 【SQLMap工具-1】SQLMap简介及简单应用实例

    1 SQLMap简介 SQLMap 是一个自动化的SQL注入工具 其主要功能是扫描 发现并利用给定URL的SQL注入漏洞 内置了很多绕过插件 支持的数据库是MySQL Oracle PostgreSQL Microsoft SQL Serv
  • fmt文本格式库的源码下载编译(Win10+VS2022)

    目录 fmt文件格式库 什么是fmt fmt下载方式 资源结构 编译fmt 查看编译成功lib和pdb fmt文件格式库 什么是fmt fmt 是一个先进的文本格式库 具有现代语言的特征 用来代替 C 的 stdio 和 C iostrea
  • MessagePack For C#在Unity中的应用(场景的保存和加载)

    最近项目里面有这样一个需求 就是把场景里面的东西保存下载 然后需要的时候读取数据 加载出来 这里用到了MessagePack For C 的Unity 版本 先放一个网址https www cnblogs com Leo wl p 8143
  • 在数据集上计算连续随机变量的信息熵和互信息--k-近邻估计方法

    写在前面 信息熵 entropy 的原始定义是离散 discrete 的 后来发展了在连续域上的微分熵 differential entropy 然而 通常在给定的数据集上 无法知道连续变量的概率分布 其概率密度函数也就无法获得 不能够用微
  • Py_buffer

    使用C C 扩展Python之一 Posted on Thu 12 November 2015 in Python 假设我们需要使用C C 实现一个翻转字符串的扩展功能 下面是C语言的实现 include
  • 公布一下工资管理系统中核心部分工资计算的代码

    终于完成了工资计算部分的代码 请大家指教一下 用户可以自行定义工资计算公式 例如 实发工资 应发工资 应扣工资个人所得税 tax 应发工资 CREATE TABLE pq unitgzxm unit id char 8 NOT NULL D
  • Golang学习笔记:Zinx框架搭建轻量级TCP服务器02

    Golang学习笔记 参考学习视频地址 https www bilibili com video BV1wE411d7th p 1 所有截图均来自于上述视频 本人为自学整理的个人理解文档 0 3版本 Zinx0 3版本新增两个新概念 请求和
  • Android eSIM-LPA基于Android13的实现

    eSIM Android LPA基于 Android 13的实现 国际对ESIM相关所有规范定义在 GSMA Spec SGP eSIM Consumer and IoT Specifications 国内对EID相关规定在 电信终端产业协
  • yolov系列学习+部署(收集了一些学习网站)

    这里置顶的第一个项目是git上star超过k的一个yolo部署项目 https github com DefTruth lite ai toolkit 本项目入口地址 配套yolov1入口地址 配套yolov2入口地址 里面截图都来自这几个
  • java程序员电脑内存配置_学习JAVA对电脑配置有要求吗

    如果只是为了学java 配置不是问题 你现在随便配都可以学JAVA编程知识 要知道只用记事本就可以进行java编程了 一样可以学java编程 而且刚开始学的时候也不提倡用IDE 问题是现在买电脑应该不是为了学java而选择配置 或许你现在是
  • unity 根据顶点位置变换顶点颜色

    using System Collections using System Collections Generic using UnityEngine public class HeightCOlor MonoBehaviour publi
  • vcruntime140_1.dll丢失怎么下载安装(详细安装教程)

    下载电脑丢失的dll文件首先电脑开机后随便打开电脑上已经下载好了的任何一个浏览器输入 dll修复程序 site 点击前往下载dll修复程序 解压完成即可打开修复工具程序 压缩包解压后才能打开 解压完成即可打开修复工具 点击开始安装dll系统
  • spinlock

    自旋锁是专为防止多处理器并发而引入的一种锁 它在内核中大量应用于中断处理等部分 对于单处理器来说 防止中断处理中的并发可简单采用关闭中断的方式 即在标志寄存器中关闭 打开中断标志位 不需要自旋锁 自旋锁 概念 何谓 自旋锁 它是为实现保护
  • Ubuntu下NFS安装配置

    Ubuntu下NFS Server安装配置 1 安装nfs server apt get install nfs kernel server 关闭防火墙 sudo ufw disable 2 建立nfs专用文件夹 这个文件夹将在第3不配置成
  • android动画坐标定义

    这段时间一直在忙Android的项目 总算抽出点时间休息一下 准备把一些项目用到的Android经验分享一下 在Android开发过程中 经常会碰到Activity之间的切换效果的问题 下面介绍一下如何实现左右滑动的切换效果 首先了解一下A
  • 组个最小数(Java)

    题目描述 给定数字0 9若干个 你可以以任意顺序排列这些数字 但必须全部使用 目标是使得最后得到的数字尽可能小 注意0不能做首位 例如 给定两个0 两个1 三个5 一个8 我们得到的最小的数就是10015558 现给定数字 请编写程序输出能