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

Дано натуральне число 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.OrderByDescending(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;
    }
}

Дивіться також: