题目描述
小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。
并且小Q对于能否被3整除这个性质很感兴趣。
小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。
输入描述:
输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区间两端。
输出描述:
输出一个整数, 表示区间内能被3整除的数字个数。
示例1
输入
2 5
输出
3
说明
12, 123, 1234, 12345...
其中12, 123, 12345能被3整除。
这个题目大家可以换一个思路去求解,首先根据上面的表格,我们可以发现,能被3整除的数字序列,按照一般的理解,就是这个数字的各位数字之和对3取余,如果是0,代表可以,否则不可以。
但是这样思路存在的问题是:时间复杂度很高,空间复杂度也很高。因为数字序列的大小和长度均不确定。
考虑以上问题,进行优化
核心算法: