网易云| |被3整除

被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;
}

猜你喜欢

转载自blog.csdn.net/qq_40399012/article/details/80828275