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