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

 

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

 

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

 

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

 

Пример входа

Пример выхода

327

535824

 

 

РЕШЕНИЕ

условный оператор

 

Анализ алгоритма

Найдем цифры числа n = . Расположим цифры a, b, c по возрастанию. Тогда число m = 100 * c + 10 * b + a, записанное этими же цифрами, будет максимальным. Выводим квадрат этого числа.

 

Реализация алгоритма

Читаем входное значение n.

 

scanf("%d", &n);

 

Пусть n = . Находим цифры a, b, c числа n.

 

a = n % 10;

b = n / 10 % 10;

c = n / 100 % 10;

 

Сортируем цифры a, b, c по возрастанию.

 

if (c < b) { x = c; c = b; b = x; }

if (c < a) { x = c; c = a; a = x; }

if (b < a) { x = b; b = a; a = x; }

 

Строим наибольшее число m.

 

m = 100 * c + 10 * b + a;

 

Вычисляем и выводим квадрат числа m.

 

m = m * m;

printf("%d\n", m);

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    int n = con.nextInt();

    int a = n % 10;

    int b = n / 10 % 10;

    int c = n / 100 % 10;

 

    if (c < b) {int x = c; c = b; b = x;}

    if (c < a) {int x = c; c = a; a = x;}

    if (b < a) {int x = b; b = a; a = x;}

 

    int m = 100*c + 10*b + a;

    m = m * m;

    System.out.println(m);

    con.close();

  }

}

 

Python реализация

Читаем входное значение n.

 

n = int(input())

 

Пусть n = . Находим цифры a, b, c числа n.

 

a = n % 10

b = n // 10 % 10

c = n // 100 % 10

 

Сортируем цифры a, b, c по возрастанию.

 

if c < b:

  x = c; c = b; b = x

if c < a:

  x = c; c = a; a = x

if b < a:

  x = b; b = a; a = x

 

Строим наибольшее число m.

 

m = 100 * c + 10 * b + a

 

Вычисляем и выводим квадрат числа m.

 

m = m * m

print(m)

 

Python реализация сортировка

Читаем входное значение n.

 

n = int(input())

 

Пусть n = . Находим цифры a, b, c числа n.

 

a = n % 10

b = n // 10 % 10

c = n // 100 % 10

 

Заносим цифры числа n в список digits. Сортируем список digits по возрастанию.

 

digits = [a, b, c]

digits.sort()

 

Строим наибольшее число m.

 

m = digits[2] * 100 + digits[1] * 10 + digits[0]

 

Вычисляем и выводим квадрат числа m.

 

m = m * m

print(m)