2323. Числа из цифр

 

Дано целое неотрицательное число n. Составьте из всех его цифр наибольшее, а затем наименьшее число. Выведите сумму полученных чисел.

Например, для n = 56002 наибольшим будет 65200, а наименьшим 256 (ведущие нули в числе 00256 не считаются). Искомая сумма равна 65200 + 256 = 65456.

 

Вход. Одно целое число n (0 ≤ n ≤ 108).

 

Выход. Выведите сумму наибольшего и наименьшего числа, которые можно получить из n перестановкой цифр.

 

Пример входа

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

56002

65456

 

 

РЕШЕНИЕ

сортировка

 

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

Прочитаем число в символьный массив. Отсортируем цифры по убыванию, получим наибольшее число. Отсортируем цифры по возрастанию, получим наименьшее число. Вычислим их сумму.

 

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

Входное число читаем в символьный массив s.

 

char s[20];

 

Считываем входное число. Сортируем цифры по убыванию, заносим в переменную a максимальное число.

 

gets(s);

sort(s,s+strlen(s),greater<char>());

sscanf(s,"%d",&a);

 

Сортируем цифры по возрастанию, заносим в переменную b наименьшее число.

 

sort(s,s+strlen(s),less<char>());

sscanf(s,"%d",&b);

 

Выводим сумму чисел.

 

printf("%d\n",a+b);

 

 

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

Читаем входное число как строку.

 

cin >> s;

 

Сортируем цифры по убыванию, заносим в переменную a максимальное число.

 

sort(s.begin(),s.end(),greater<char>());

a = stoi(s);

 

Сортируем цифры по возрастанию, заносим в переменную b наименьшее число.

 

sort(s.begin(),s.end(),less<char>());

b = stoi(s);

 

Выводим сумму чисел.

 

cout << a + b << endl;

 

Java реализация

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    String s[] = con.nextLine().split("");

    // s = {"1", "2", "3", "4", "5", "6"}

   

    Arrays.sort(s);

    int a = Integer.parseInt(String.join("", s));

   

    Arrays.sort(s,Collections.reverseOrder());

    int b = Integer.parseInt(String.join("", s));

   

    System.out.println(a + b);

    con.close();

  }

}

 

Java реализация – stringbuilder reverse

 

import java.util.*;

 

public class Main

{

  public static void main(String[] args)

  {

    Scanner con = new Scanner(System.in);

    char s[] = con.next().toCharArray();

    Arrays.sort(s);

    int a = Integer.parseInt(String.valueOf(s));

   

    String sr = new

      StringBuilder(String.valueOf(s)).reverse().toString();

    int b = Integer.parseInt(sr);

   

    System.out.println(a + b);

    con.close();

  }

}

 

Python реализация

 

n = sorted(input())

print(int(''.join(n)) + int(''.join(n)[::-1]))