挑战在于编写一个程序或脚本,该程序将对从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
规则与准则:
- 提交的代码必须是完整的程序或脚本,而不仅仅是函数。如果代码要求包含,导入等,则必须将其包含在发布的代码中。
- 该数字必须由用户输入-不得进行硬编码。输入可以作为命令行参数,文件,stdin或您的语言可以接受用户输入的任何其他方式来接收。
- 该代码必须至少能够正确处理输入
(2^64)-1
。 - 该代码应仅输出总和。
- 提交的程序和脚本应该是用户友好的,并且不浪费计算机资源(例如:它们不应声明超大的数组来容纳每个字符)。对此没有严格的奖励或惩罚,但是请成为优秀的程序员。
得分:
主要的评分机制是根据代码长度。分数越低越好。以下奖金和罚款也适用:
- 如果您的代码可以处理所有正数,则奖励-25,例如:
1234567891234567891234564789087414984894900000000
- 如果代码可以处理简单表达式,则为-50,例如
55*96-12
。要获得此奖金,代码应处理+ - / *
(加,减,除,乘)运算符并强制执行运算顺序。除法是规则的整数除法。- 给定的示例(
55*96-12
)计算为5268
。对于任何一个输入,您的代码都应返回相同的值-正确答案是81393
。
- 给定的示例(
- 如果您的代码有资格获得-50奖励并且可以处理
^
(指数)运算符,则为-10奖励。 - -100奖励,如果您的代码符合-50奖励的条件,并且不使用
eval
或类似方式处理表达式。 - 如果您的代码依赖于任何网络资源,则+300罚款。
55*96-12
返回什么?