(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); } } }