Эта задача состоит в том, чтобы написать программу или скрипт, который подсчитывает сумму всех цифр в целых числах от 1 до и включая заданное число.
Ввод, одно положительное целое число. Выведите, сумму цифр в этом числе и все меньшие числа.
Примеры:
Input: 5
Integer Sequence: 1, 2, 3, 4, 5
Sum of Digits: 1 + 2 + 3 +4 + 5 = 15
Input: 12
Integer Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Sum of Digits: 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 1 + 0 + 1 + 1 + 1 + 2 = 51
Чтобы было ясно, это значит, что нужно посчитать сумму цифр, а не целых чисел. Для однозначных входов это будет то же самое. Тем не менее, входы больше 10 будут иметь разные ответы. Это был бы неправильный ответ:
Input: 12
Output: 78
Другой пример, чтобы показать разницу:
Input: 10
Integer Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Sum of Integers (INCORRECT RESPONSE): 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
Digit Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0
Sum of Digits (CORRECT RESPONSE): 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 1 + 0 = 46
Большой тестовый пример (ПРАВИЛЬНЫЙ ОТВЕТ):
Input: 1000000
Output: 27000001
Правила и рекомендации:
- Представленный код должен быть законченной программой или скриптом, а не просто функцией. Если код требует включает в себя, импорт и т. Д., Они должны быть включены в размещенный код.
- Номер должен быть введен пользователем, а не жестко запрограммирован. Ввод может быть получен в виде аргумента командной строки, файла, стандартного ввода или любым другим способом, с помощью которого ваш язык может принимать пользовательский ввод.
- Код должен быть в состоянии правильно обрабатывать ввод по крайней мере до
(2^64)-1
. - Код должен выводить только сумму.
- Представленные программы и сценарии должны быть удобными для пользователя и не растрачивать компьютерные ресурсы (например: они не должны объявлять безумно большие массивы для хранения каждого символа). Для этого нет строгого бонуса или штрафа, но, пожалуйста, будьте хорошими программистами.
Подсчет очков:
Основной механизм оценки по длине кода. Чем ниже баллы, тем лучше. Следующие бонусы и штрафы также применяются:
- -25 Бонус, если ваш код может обрабатывать все положительные числа, например:
1234567891234567891234564789087414984894900000000
- -50 Бонус, если ваш код может обрабатывать простые выражения, например
55*96-12
. Чтобы получить этот бонус, код должен обрабатывать+ - / *
операторы (сложение, вычитание, деление, умножение) и обеспечивать порядок операций. Деление - это регулярное целочисленное деление.- Данный пример (
55*96-12
) оценивается как5268
. Ваш код должен возвращать то же самое для любого из этих входов - правильный ответ81393
.
- Данный пример (
- Бонус -10, если ваш код соответствует бонусу -50 и может обрабатывать
^
оператор (экспонента). - Бонус -100, если ваш код соответствует бонусу -50 и не используется
eval
или не похож на обработку выражений. - +300 Штраф, если ваш код опирается на какие-либо веб-ресурсы.
55*96-12
вернуться?