Переставить цифры числа так, чтобы образовалось наименьшее число

Дано натуральное число N. Нужно переставить его цифры так, чтобы образовалось наименьшее число, записанное теми же цифрами.

Входные данные

Натуральное число N.

Выходные данные

Наименьшее число полученное перестановкой цифр исходного числа.

Код программы

using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        var n = Convert.ToUInt32(Console.ReadLine());
        var d = IntToDigits(n);
        var sortedDigits = d.OrderBy(x => x).ToList();
        var result = 0u;
        for (var i = 0; i < sortedDigits.Count(); i++)
        {
            result += sortedDigits[i];
            if (i < sortedDigits.Count() - 1)
            {
                result *= 10;
            }
        }

        Console.WriteLine(result);
    }

    static List<uint> IntToDigits(uint n)
    {
        var digits = new List<uint>();
        while (n > 0)
        {
            var digit = n % 10;
            n /= 10;
            digits.Add(digit);
        }

        digits.Reverse();
        return digits;
    }
}

Смотрите также: