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,我们得到的最小的数就 ...
随机推荐
- pyqt pyside QLineEdit 重写键盘事件
pyqt pyside QLineEdit 重写键盘事件 def keyPressEvent(self, event): if (event.modifiers() & QtCore.Qt.S ...
- url传参过程中文字需编码、解码使用
1.链接进行编码跳转:window.location.href = encodeURI(url) 2.获取当前链接进行解码:decodeURI(window.location); 3.获取url中参数 ...
- python基础一 ------排序和查找算法
插入排序; 假设数组长度为n,先从第二个元素开始,与前一个元素比较,之后将较小的元素 放在前面,现在前两个元素是有顺序的,这时取第三个元素,与前一个元素(也就是第二个)比较,较小的放在前面 ...
- Asia-Tsukuba 2017
A. Secret of Chocolate Poles DP,$f[i][j]$表示高度为$i$,顶层颜色为$j$的方案数. 时间复杂度$O(l)$. #include<cstdio> ...
- weblogic10.3 启动报错 Unrecognized option: -jrockit Error: Could not create the Java Virtual Machine
今天在使用weblogic10.3+jdk7创建domain的时候,建好domain后启动报如下错误信息: Unrecognized option: -jrockitError: Could not ...
- vue_小项目_吃饭睡觉打豆豆
vue_小项目_吃饭睡觉打豆豆 onmouseenter 和 onmouseleave : 在 移入/移出 子元素时不会重复触发 onmouseover 和 onmouseout : 在 移入/移出 ...
- 白盒测试实践-day04
一.任务进展情况 通过小组成员的共同努力,终于完成了此次“白盒测试实践”任务.目前的主要任务将之前的文件汇总,整理出来. 二.存在的问题 由于测试系统的不完善,导致单元测试比较麻烦. 三.解决方法 认 ...
- 课堂笔记及知识点----栈和队列(2018/10/24(am))
栈: Stack<int> xt=new Stack<int>() ; 先进后出,后进先出,水杯结构,顺序表类似 常用方法: .pop---->出栈,弹栈 ...
- Tensorflow Chapter-6
|--子节点 |--单位节点矩阵:长宽为1,深度不限 |--多维度的二维卷积,和之前的理解不一样:应该是每个通道都要计算在下一层的每个节点上:2*2*3,f=1*1*5 -> 2*2*3*5个参 ...
- 洛谷 P3379 【模板】最近公共祖先(LCA)
题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先. 输入输出格式 输入格式: 第一行包含三个正整数N.M.S,分别表示树的结点个数.询问的个数和树根结点的序号. 接下来N-1行每 ...