Квадрат максимального

Дано трехзначное натуральное число. Переставить цифры этого числа так, чтобы получилось максимальное число, записанное этими же цифрами. Затем это максимальное число следует возвести в квадрат и вывести.

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

Одно трехзначное натуральное число.

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

Вывести квадрат максимального числа.

Алгоритм решения задачи

  • Разбиваем число на отдельные цифры;
  • Сортируем список по убыванию;
  • Склеиваем отдельные цифры в число и возводим его в квадрат;

Решение

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;
    }
}

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