1023. 组个最小数 (20) (数学啊 ZJU_PAT)
2014-11-24 20:37
323 查看
题目链接:http://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的数字。
输出格式:
在一行中输出能够组成的最小的数。
输入样例:
输出样例:
代码如下:
给定数字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 <cstdio> int main() { int a[17]; int i, j; for(i = 0; i < 10; i++) { scanf("%d",&a[i]); } int flag = 0; for(i = 1; i < 10; i++) { if(!flag && !a[i]) continue; if(a[i] && !flag) { printf("%d",i); for(j = 0; j < a[0]; j++) printf("0"); for(j = 1; j < a[i]; j++) { printf("%d",i); } flag = 1; continue; } for(j = 0; j < a[i]; j++) { printf("%d",i); } } printf("\n"); return 0; }
相关文章推荐
- 【PAT】(乙级)1023. 组个最小数 (20)
- 1013. 数素数 (20) (数学啊 ZJU_PAT)
- 1017. A除以B (20) (数学啊 ZJU_PAT)
- PAT 1023. 组个最小数 (20)
- 1002. 写这个号码 (20)(数学啊 ZJU_PAT)
- [PAT乙级]1023. 组个最小数 (20)
- PAT1023 BASIC:组个最小数 (20)
- PAT (Basic Level) Practise (中文) 1023. 组个最小数 (20)
- PAT乙级 1023. 组个最小数 (20)
- PAT (Basic Level) Practise (中文)1023. 组个最小数 (20)
- PAT乙级1023. 组个最小数 (20)
- 1007. 素数对猜想 (20) (数学啊 ZJU_PAT)
- 1018. 锤子剪刀布 (20) (数学啊 ZJU_PAT)
- PAT 乙级 1023. 组个最小数 (20) Java版
- 1019. 数字黑洞 (20) (数学啊 ZJU_PAT)
- 1023. 组个最小数 (20) PAT
- 1023. 组个最小数 (20) PAT 乙级
- PAT训练(乙级)—— 1023. 组个最小数 (20)
- 2-06. 数列求和(20)(ZJUPAT 数学)
- PAT:B1023. 组个最小数 (20/20)