【发布时间】:2011-07-08 20:28:45
【问题描述】:
这个问题真的让我很困惑;给定两个整数 A、B,我们要计算 [A, B] 范围内数字的出现次数。我认为,如果我们可以计算 [0, A] 和 [0, B] 范围内的数字出现次数,那么剩下的就很简单了。那么如何计算 [0, x] 范围内的数字出现次数? 这不是作业,这实际上是 SPOJ 的问题。 幼稚的方法是行不通的,因为 A 和 B 可以大到 10 ^ 9。以下是一些示例:
输入:
1 10
输出:
1 2 1 1 1 1 1 1 1 1
输入:
44497
输出:
85 185 185 185 190 96 96 96 95 93
【问题讨论】:
-
你知道如何计算单个数字中出现的数字吗?
-
我们需要更多信息。样本数据集和相应的答案会很好。您是否尝试过解决问题并遇到代码问题?如果是这样,请张贴你所拥有的。这是作业吗?像这样标记
-
好吧,如果范围很大,这实际上很有趣。
-
数学上你的假设是正确的。但是在计算中这是一个坏主意。想想这个例子:A=10^10^10^10 and B=10^10^10^10+1。
-
对于
1s,请参见:oeis.org/A094798 那里甚至还有 Maple 代码!
标签: algorithm math numbers digits counting