文档章节

组个最小数

 阿豪boy
发布于 2017/02/26 14:16
字数 376
阅读 27
收藏 0

https://www.patest.cn/contests/pat-b-practise/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

 

#include <iostream>
#include <cstdio>
using namespace std;

int cnt[10]={0};	//每个数字出现的次数 

//需要输出第几个数字 
void dfs(int n){
	if(n==11) return;
	if(n==1){
		for(int i=1;i<10;i++)
			if(cnt[i]>0){
				printf("%d",i);
				cnt[i]--;
				dfs(n+1);
			}
	}else{
		for(int i=1;i<10;i++)
			if(cnt[i]>0){
				printf("%d",i);
				cnt[i]--;
				dfs(n+1);
			}
	} 
 
} 
int main(int argc, char *argv[])
{
	int t;
	for(int i=0;i<10;i++){
		scanf("%d",&t);
		cnt[i]=t;
	}
	for(int i=1;i<10;i++)
		if(cnt[i]>0){
			printf("%d",i);
			cnt[i]--;
			break;
		} 
	for(int i=0;i<10;i++){
		while(cnt[i]>0){
			printf("%d",i);
			cnt[i]--;
		} 
	}
 
	printf("\n");		
	return 0;
}

 

© 著作权归作者所有

共有 人打赏支持
粉丝 23
博文 1072
码字总数 722196
作品 0
西安
Echarts仪表盘数据能整除却显示无穷小数的问题

百度Echarts仪表盘 是指定最小值,最大值,分段数来画图, 本人对官方的说明理解以及各方网页搜索,得出结论是:如果此值域不能整除,则显示无穷小数,即以下是无法除尽的: (最大值-最小值...

qingyangfly
2015/09/02
869
2
微信小程序---保留小数(toFixed) 四舍五入 获取整数 string转int

今天遇到了不少问题,问题虽小,还是得做个笔记. 关于微信小程序保留小数(toFixed) 四舍五入,获取整数的问题。 1.保留小数点后几位小数. 方法很简单.toFixed()即可.括号内的数字表示保留的位数...

qq_38125123
2017/08/18
0
0
nyoj 267 郁闷的C小加(二)中缀表达式变后缀表达式并计算值

郁闷的C小加(二) xiewuqiang 这道题真的是……唉,一把辛酸泪,没爱了,用的队列,看的别人的代码用的队列,但是一直程序有错误,然后忽略了数组的循环直接将i加了,但是队列得出队列 #inc...

dear_jia
05/08
0
0
请教大家一个数据分组的算法

求救大家帮写个算法,关于数分组的问题 是这样的, 有比如1000个数,会用重复, 每个数的取值范围≥40.00,<350.00 ,有两位小数, 现在想把这些数做分组操作, 条件: 1.每个组内的几个数之和 偏...

AlexKai
2016/06/17
164
1
正则表达式高级用法

原文地址:http://www.cnblogs.com/kevin-yuan/archive/2012/11/11/2765340.html 正则表达式高级用法(分组与捕获) 分组的引入: 对于要重复单个字符,非常简单,直接在字符后卖弄加上限定符即...

chenzy526
2017/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

7月13日任务 for、while、break跳出、ontinue结束、exit退出

20.10 for循环 语法:for 变量名 in 条件; do …; done 案例1:计算1到100的和 #!/bin/bashsum=0for i in `seq 1 100`do    sum=$[$sum+$i]    echo $idoneecho $sum 案例2...

吕湘颖
36分钟前
0
0
qemu增量镜像的好处

可以快速恢复,相当于快照的功能。

simpower
44分钟前
0
0
Python3_Appium_QQ 实战

Python3_Appium实战 -海盐 APPium移动自动化测试 样例中 测试的 app 使用的是 QQ; Appium介绍 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合...

海盐宝宝
44分钟前
0
0
内网穿透利器-ngrok的图文安装

使用场景: 在做微信开发或是调银行或支付宝等支付系统的时候,本地想联调但是对方需要可以访问的域名或是外网IP才可以。但是,在本地如果不在路由器上做映射或是公司没有固定的外网IP。这种...

中凯_凯哥java
49分钟前
2
1
归约与分组 - 读《Java 8实战》

区分Collection,Collector和collect 代码中用到的类与方法用红框标出,可从git库中查看 收集器用作高级归约 // 按货币对交易进行分组Map<Currency, List<Transaction>> currencyListMap = g...

yysue
49分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部