Здравствуйте. Подскажите кто-нибудь как найти сумму цифр всех чисел на заданном интервале от A до B. А и В до 10^9 степени. Спасибо.
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 4009 |
2 | jiangly | 3823 |
3 | Benq | 3738 |
4 | Radewoosh | 3633 |
5 | jqdai0815 | 3620 |
6 | orzdevinwang | 3529 |
7 | ecnerwala | 3446 |
8 | Um_nik | 3396 |
9 | ksun48 | 3390 |
10 | gamegame | 3386 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 156 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
9 | nor | 153 |
Здравствуйте. Подскажите кто-нибудь как найти сумму цифр всех чисел на заданном интервале от A до B. А и В до 10^9 степени. Спасибо.
Название |
---|
Чтобы решить задачу, нужно заметить несколько важных моментов. Первое: пусть
f(A)
— сумма цифр всех чисел от 1 доA
. Тогда ответ на задачу этоf(B) - f(A - 1)
. Теперь научимся считатьf(A)
. Для начала посчитаем кол-во цифрlen(A)
в числеА
. Теперь прибавим к ответу сумму цифр всех чиселx
, таких, чтоlen(x) < len(A)
. Это можно сделать, учтя сразу все числа одной длины. Делается как-то комбинаторно одной формулой, остается на рассмотрение читателю. Теперь посмотрим на цифру, отвечающую за наибольший разряд —A[0]
числаА
. В ответ точно войдут суммы цифр всех таких чиселх
, чтоlen(x) == len(A)
иx[0] < A[0]
. Тогда перебрав цифру или учтя сразу все цифры< A[0]
и, опять же, посчитав суммарное кол-во цифр в последовательностях цифр длиныlen(A) - 1
, мы можем учесть все числа такой же длины, что иА
, но имеющих первую цифру меньше, чем уА
. Остались неучтенными только те числах
, такие, чтоlen(x) == len(A) && x[0] == A[0]
. Теперь у нас есть фиксированный префикс числа, состоящий изA[0]
и задача, почти аналогичная тому, чтобы найти кол-во чисел, равных по длинеА
и имеющих нулевую цифру равную нулевой цифреА
. Повторим решение и перейдем к совпадающему префиксуA[0],A[1]
. Будем повторять это, пока совпадающим префиксом не станет само числоA
.Не уверен на 100%, что решение работает, но звучит весьма убедительно. Довольно неприятная задача, как и почти любая задача, связанная с цифрами. В особенности, ДП по цифрам.