Дано трьохзначне натуральне число. Переставити цифри цього числа так, щоб отримати максимальне число, що записується тими ж цифрами. Потім це максимальне число необхідно піднести до квадрату та вивести на екран.
Вхідні дані
Одне трьохзначне натуральне число.
Вихідні дані
Вивести квадрат максимального числа.
Алгоритм розв’язку задачі
- Розбиваємо число на окремі цифри;
- Сортуємо отримані числа по спаданню;
- Склеюємо окремі цифри в число та підносимо його до квадрату;
Код програми
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
var n = Convert.ToInt32(Console.ReadLine());
var digits = IntToDigits(n).OrderByDescending(x => x);
var result = 0;
var size = digits.Count();
foreach (var d in digits)
{
result *= 10;
result += d;
}
result*=result; //піднесення до квадрату
Console.WriteLine(result);
}
//метод для отримання списку цифр числа
static List<int> IntToDigits(int n)
{
n = Math.Abs(n);
var digits = new List<int>();
while (n > 0)
{
int digit = n % 10;
n /= 10;
digits.Add(digit);
}
return digits;
}
}