标签:ios 不能 输出 har int std 输入 排列 getc
给定数字0~9若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能为首
位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是:10015558.
现给定数字,请编写程序输出能够组成的最小的数。
0 0 5 8 5 1 5 1
10015558
5 6 4 2 3 6 5 0 0 0 6
20003455666
#include <iostream>
using namespace std;
int main()
{
int baseNum[10] = { 0 };
char theGet;
int count = 0;
while ((theGet = getchar()) != ‘\n‘)
{
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;
}
标签:ios 不能 输出 har int std 输入 排列 getc
原文地址:https://www.cnblogs.com/JingWenxing/p/9938021.html