博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
组个最小数
阅读量:3959 次
发布时间:2019-05-24

本文共 1027 字,大约阅读时间需要 3 分钟。

题目来源

题目描述

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

给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。
现给定数字,请编写程序输出能够组成的最小的数。
在这里插入图片描述

题目解析

该题目的输入数据是由 10 个数字组成,表示 0 - 9 出现的次数,组成最小数满足下面条件即可:

1)除0以外1-9中按照从小到大的顺序,将最小的数字输出1次
2)输出所有出现的0
3)输出1-9中按照从小到大的顺序,将每个数子输出出现的次数(第一位输出的数字会在第一次输出的时候减去1)

解题代码

import java.util.*;public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in); int[] a=new int[10]; //输入这十个数字出现的次数 for(int i=0;i<10;i++){
a[i]=sc.nextInt(); } //输出1-9第一个数字一次 for(int i=1;i<10;i++){
if(a[i]!=0){
System.out.print(i); a[i]--; break; } } //第二位输出0 while(a[0]!=0){
System.out.print(0); a[0]--; } //最后按照1-9的顺序输出 for(int i=1;i<10;i++){
while(a[i]!=0){
System.out.print(i); a[i]--; } } }}

转载地址:http://qdlzi.baihongyu.com/

你可能感兴趣的文章
《Linux内核设计与实现》- 进程的调度
查看>>
inet_ntoa()
查看>>
POSIX消息队列mq_open问题
查看>>
两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]…*a[N-1]/a[i];
查看>>
用户态切换到内核态的3种方式
查看>>
笔试常见的智力题(附答案)
查看>>
内核库函数
查看>>
Linux 系统内核空间与用户空间通信的实现与分析
查看>>
linux内核空间和用户空间的区别及交互
查看>>
如何写好应用型学术论文
查看>>
如何查看进程的各种限制
查看>>
64位int类型用printf输出问题
查看>>
网络后台开发面试题目
查看>>
Linux 共享内存限制的查看与设置
查看>>
进程的状态转换
查看>>
如何查看进程的信息(线程数)
查看>>
read的用法
查看>>
查看系统信息(cpu,内存,硬盘,网卡)
查看>>
awk的混合编程
查看>>
awk编程
查看>>