###题目:
小Q得到一个神奇的数列: 1, 12, 123,…12345678910,1234567891011…。
并且小Q对于能否被3整除这个性质很感兴趣。
小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。
输入描述:
输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区间两端。
输出描述:
输出一个整数, 表示区间内能被3整除的数字个数。
输入例子1:
2 5
输出例子1:
3
例子说明1:
12, 123, 1234, 12345…
其中12, 123, 12345能被3整除。
**解析:**通过数列可以找到规律分别是0,1,1,0,1,1,0,1,1…,0代表不能被3整除,1代表能被3整除,一个数与3求余数只有三种情况分别是0,1,2,因此代码就对这三种情况进行了分析,同时求能被3整除个数可以先求m之前1的个数减去n之前1的个数就是这两个数之间1的个数。
#include<iostream>
#include<vector>
using namespace std;
vector<int>V;
int main()
{
int n,m;
cin >>n>>m;
if(n%3==0 && m%3==0)
{
cout<<(m/3-n/3)*2;
}
if(n%3==0 && m%3==2)
{
cout<<(2*m-1)/3-n/3*2+1;
}
if(n%3==2 && m%3