被3整除
时间限制:1秒
空间限制:32768K
小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整除。
思想://例:序号: 1 2 3 4 5
//数字 1 12 123 1234 12345
//序号对3取余 1 2 0 1 2
//规律只要序号对3取余,不是1,那么该数就可以被3整除
代码如下:
#include <stdio.h>
int divisor_3(int start, int end)
{
int i = 0;
//可以被3整除的个数
int sum = 0;
int ret = 0;
for (i = start; i <= end; i++)
{
if ((ret = i % 3) != 1)
{
sum++;
}
}
return sum;
}
int main()
{
int start = 0;
int end = 0;
int sum = 0;
scanf("%d %d", &start, &end);
sum = divisor_3(start, end);
printf("%d", sum);
return 0;
}