Разбор задачи G
Возможное решение задачи:
1. Составить массив, в который занести все цифры числа.
2. Отсортировать этот массив по возрастанию.
3. Найти в этом массиве наименьшую ненулевую цифру, вывести ее.
4. Вывести все цифры, находящиеся левее нее в отсортированном массиве (это будут только нули).
5. Вывести все цифры, находящиеся правее нее в отсортированном массиве в порядке возрастания.
#include<iostream>
using namespace std;
// Функция сортировки массива по возрастанию
void sort(int A[], int size)
{
int t;
for(int i=size-1;i>0;--i)
{
for(int j=1;j<=i;++j)
{
if(A[j-1]>A[j])
{
t=A[j-1];
A[j-1]=A[j];
A[j]=t;
}
}
}
}
int main()
{
int n, i, j, size=0;
int Digits[10]; // Массив для хранения цифр числа
cin>>n; // Считали число
// Заполняем массив Digits цифрами числа n // Одновременно в size записываем количество цифр в n
while(n>0)
{
Digits[size++]=n%10;
n/=10;
}
// Сортируем массив Digits
sort(Digits,size);
// Ищем индекс первого ненулевого элемента в Digits
i=0;
while(Digits[i]==0)
++i;
// Выводим первый ненулевой элемент
cout<<Digits[i];
// Выводим все цифры до i-й
for(j=0;j<i;++j)
cout<<Digits[j];
// Выводим все цифры после i-й
for(j=i+1;j<size;++j)
cout<<Digits[j];
cout<<endl;
return 0;
}