Numbers from digits#2323

Numbers from digits (Editorial)

Читаем входное число в символьный массив. Отсортируем его цифры по убыванию — получим наибольшее число и запишем его в переменную . Затем отсортируем цифры по возрастанию — получим наименьшее число и запишем его в переменную . После этого вычислим сумму чисел и .

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

Строку используем для хранения входного числа.

char s[20];

Читаем входное число и сохраняем его в символьный массив .

gets(s);

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

sort(s,s + strlen(s),greater<char>());
sscanf(s,"%d",&a);

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

sort(s,s + strlen(s),less<char>());
sscanf(s,"%d",&b);

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

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

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

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

cin >> s;

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

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

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

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]))