Pentru ca nu ai specificat cat de mare este nr natural...am considerat un numar mare de 10000 de cifre, iar numarul il citesc dintr-un fisier text ca in problema mincifre de pe pbinfo. Solutia de mai jos rezolva problema ta la caz general.
#include <bits/stdc++.h>
using namespace std;
char s[10020];
int n, i, v[10], a, val, p;
int main()
{
ifstream f("mincifre.in");
ofstream g("mincifre.out");
f.getline(s, sizeof(s));
for(i = 0; i < strlen(s); i ++)
{
val = s[i] - '0';
v[val] ++;
}
if(v[0] > 0)
for(i = 1; i <= 9; i ++)
if(v[i] > 0)
{
g << i;
v[i] --;
break;
}
for (i = 0; i <= 9; i ++)
while (v[i])
{
g << i;
v[i]--;
}
return 0;
}