Дано трехзначное натуральное число. Переставить цифры этого числа так, чтобы получилось максимальное число, записанное этими же цифрами. Затем это максимальное число следует возвести в квадрат и вывести.
Входные данные
Одно трехзначное натуральное число.
Выходные данные
Вывести квадрат максимального числа.
Алгоритм решения задачи
- Разбиваем число на отдельные цифры;
- Сортируем список по убыванию;
- Склеиваем отдельные цифры в число и возводим его в квадрат;
Решение
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;
}
}