Дано целое
неотрицательное число 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]))