最小数排序
Posted jingwenxing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最小数排序相关的知识,希望对你有一定的参考价值。
题目:
给定数字0~9若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能为首
位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是:10015558.
现给定数字,请编写程序输出能够组成的最小的数。
输入样例1:
0 0 5 8 5 1 5 1
输出样例1:
10015558
输入样例2:
5 6 4 2 3 6 5 0 0 0 6
输出样例2:
20003455666
代码示例:
#include <iostream>
using namespace std;
int main()
{
int baseNum[10] = { 0 };
char theGet;
int count = 0;
while ((theGet = getchar()) != ‘
‘)
{
baseNum[theGet-‘0‘]++;
count++;
}
int n;
for (n = 1; n < 10; n++) // 首位判断
{
if (baseNum[n] == 0)
continue;
else
{
cout << n;
baseNum[n]--;
break;
}
}
for (n = 0; n < 10; n++) // 其他位判断
{
if (baseNum[n] == 0)
continue;
else
{
cout << n;
baseNum[n]--;
if (baseNum[n] != 0)
n--;
}
}
return 0;
}
以上是关于最小数排序的主要内容,如果未能解决你的问题,请参考以下文章