PAT (Basic Level) Practice (中文)1023 组个最小数
1023 组个最小数
给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。
现给定数字,请编写程序输出能够组成的最小的数。
输入格式:
输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。
输出格式:
在一行中输出能够组成的最小的数。
输入样例:
2 2 0 0 0 3 0 0 1 0
输出样例:
10015558
分析: 首先列出0~9所有数字,如 输入 2 2 0 0 0 3 0 0 1 0 时,应列出 0 0 1 1 5 5 5 8 ,对列出的数字从小到大排序,从左到右,找出第一个不为0的数,作为最小数的首位,将剩下的数依次输出。
代码:
#include<stdio.h> void fun(int *arr2,int t)
{
int i,j;
int index=;
int temp;
for(i=;i<t-;i++)
{
index=i;
temp=arr2[i];
for(j=i+;j<t;j++)
{
if(arr2[j]<=arr2[index]) index=j;
}
arr2[i]=arr2[index];
arr2[index]=temp;
}
} void printfun(int *arr2,int n)
{
int min=;
int i;
for(i=;i<n;i++)
{
if(arr2[i]!=)
{
// min=arr2[i];
printf("%d",arr2[i]);
arr2[i]=-;
break;
}
}
for(i=;i<n;i++)
{
if(arr2[i]>=&&arr2[i]<=)
{
// min=min*10+arr2[i];
printf("%d",arr2[i]);
}
}
// printf("%d\n",min);
printf("\n");
}
int main()
{
int arr1[];
int arr2[];
int t=;
int i;
int sum=;
int l=;
for(i=;i<;i++)
{
scanf("%d",&arr1[i]);
sum+=arr1[i];
}
if(sum>&&(sum-arr1[]<=))return ;
else{
int j;
for(i=;i<;i++)
{
for(j=;j<=arr1[i];j++)
{
arr2[t++]=i;
}
}
fun(&arr2,t); //排序
printfun(&arr2,t); //组最小数
return ;
} }
PAT (Basic Level) Practice (中文)1023 组个最小数的更多相关文章
- PAT (Basic Level) Practise:1023. 组个最小数
[题目链接] 给定数字0-9各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意0不能做首位).例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是 ...
- PAT (Basic Level) Practice (中文)1078 字符串压缩与解压 (20 分) 凌宸1642
PAT (Basic Level) Practice (中文)1078 字符串压缩与解压 (20 分) 凌宸1642 题目描述: 文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一 ...
- PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...
- PAT (Basic Level) Practice (中文)1065 单身狗 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1065 单身狗 (25 分) 凌宸1642 题目描述: "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大 ...
- PAT (Basic Level) Practice (中文)1055 集体照 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1055 集体照 (25 分) 凌宸1642 题目描述: 拍集体照时队形很重要,这里对给定的 N 个人 K 排的队形设计排队规则如下: 每 ...
- PAT (Basic Level) Practice (中文)1054 求平均值 (20 分) 凌宸1642
PAT (Basic Level) Practice (中文)1054 求平均值 (20 分) 题目描述 本题的基本要求非常简单:给定 N 个实数,计算它们的平均值.但复杂的是有些输入数据可能是非法的 ...
- PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) 目录 PAT (Basic Level) Practice (中文) 1050 螺旋矩阵 (25 分) ...
- PAT (Basic Level) Practice (中文)1057 数零壹 (20 分) (按行输入带空格的字符串)
给定一串长度不超过 1 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0.多少 1.例如给定 ...
- PAT (Basic Level) Practice (中文)1023 组个最小数 (20 分) (排序)
给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就 ...
随机推荐
- 学习django就看这本书了!django book 2.0中文版
所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/29/ 来源:python黑洞网 dj ...
- pyqt pyside 窗口自动调整大小
pyqt pyside 窗口自动调整大小 在QTimer中一直调整 def initTimer(self): self.resizeTimer = QtCore.QTimer(self) self.r ...
- 一个div实现白眼效果
巧妙利用border和background-clip <div class="eye"></div> .eye{ width:150px; height ...
- 分布式session解决——Spring-data-redis
1.如果没有集成shiro来管理session,可以直接使用spring-session 2.若集成了shiro,需要Spring-data-redis (或 shiro-redis) 3.nginx ...
- 4.2模拟赛 wormhole(期望DP Dijkstra)
\(\color{white}{orzmjt又切题了...}\) \(Description\) 给定一张有向图,每条边在每一时刻有\(p_i\)的概率存在.求最优策略下从\(1\)走到\(n\)最少 ...
- silverlight 调试问题
web端调用方式是:<param name="source" value="/ClientBin/Chns.Web.RoomChart.xap?v=012" ...
- 对于服务器AdminServer, 与计算机Machine-0相关联的节点管理器无法访问
控制台启动server时报"对于服务器server-1与计算机machin<!--StartFragment -->对于服务器AdminServer, 与计算机Machine-0 ...
- 什么是Hash?Hash有哪些特性?
Hash 把任意长度的输入通过散列算法变换成固定长度的输出 Hash的特性: 输入域无穷,输出域有限.例如:有无穷多个(在工程中可以具体到多少个,例如1000)输入参数经过hash函数映射后得到有限的 ...
- Tinker 热修复
集成方式: 第一步:在project build.gradle 文件中添加: dependencies { // Tinker classpath("com.tinkerpatch.sdk ...
- idea 常用快捷键
=============intellij idea 快捷键============= ctrl+] 诸如{}围起来的代码块,使用该快捷键可以快速跳转至代码块的结尾处 ctrl+[ 同上,快速跳至代码 ...