Рассмотрим последовательность всех натуральных чисел
от a до b. В каждом числе отсортируем цифры по возрастанию.
Найдите сумму полученных чисел.
Вход. Два
натуральных числа a и b (a ≤ b ≤ 106).
Выход. Выведите
сумму полученных чисел.
Пример входа |
Пример выхода |
19 22 |
55 |
сортировка
Переберем
числа от a до b. Преобразуем каждое число в строку. Отсортируем
символы в строке, после чего цифры будут расположены по возрастанию. Преобразуем
строку в число и прибавим к результирующей сумме.
Пример
В примере a = 19, b = 22. Числами от a
до b будут: 19, 20, 21, 22. После сортировки цифр в числах получим
числа: 19, 02, 12, 22. Сумма чисел равна 19 + 2 + 12 + 22 = 55.
Читаем входные данные.
scanf("%d %d", &a, &b);
В
переменной sum будем вычислять требуемую сумму
чисел.
sum = 0;
Перебираем
числа от a до b.
for (i = a; i <= b; i++)
{
Преобразовываем
число i в строку s.
string s = to_string(i);
Сортируем
цифры строки s.
sort(s.begin(), s.end());
Преобразовываем
строку s в
число val и
прибавляем его к сумме sum.
sscanf(s.c_str(), "%lld", &val);
sum += val;
}
Выводим
ответ.
printf("%lld\n", sum);