(java实现)


题目描述:

小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。
并且小Q对于能否被3整除这个性质很感兴趣。
小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。

输入描述:

输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区间两端。

输出描述:

输出一个整数, 表示区间内能被3整除的数字个数。

示例1:

输入

2 5

输出

2

说明

12, 123, 1234, 12345...
其中12, 123, 12345能被3整除。


问题分析:

找规律:
1, 12, 123, 1234, 12345, 123456,...12345678910,1234567891011...。
是否被三整除(true表示可以整除,false不能)a[1]=false; a[2]=true; a[3]=true; a[4]=false; a[5]=true; a[6]=true;...
从可以发现下标的规律:序号i%3=1的都不能被3整除。故只需寻找下标对3取余为1的。

相关知识:


参考代码:

思路一实现:

import java.util.*;
public class Main {

    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        while (input.hasNext())
        {
            int n = input.nextInt();
            int m = input.nextInt();
            int count = 0;
            for (int i=n; i<=m; i++)
            {
                if (1 != i%3)
                    count++;
            }
            System.out.println(count);
        }
    }
}