被3整除

被3 整除

       这是一道牛客网上面的笔试题。

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

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

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

例子:输入2,5, 输出3。

求解方法

#include<iostream>
using namespace std;
int main(){
	int num_1, num_2;
	cin >> num_1;  //读入第一个数
	cin >> num_2;  //读入第二个数
	--num_1;   
	--num_2;
    //对于一个数num_N+1,其能3整除的数的个数的更新公式为(num_N / 3 * 2 + num_N % 3)
	cout << (num_2 / 3 * 2 + num_2 % 3) - ((num_1 - 1) / 3 * 2 + (num_1 - 1) % 3);
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/heart_leader/article/details/79727647