首页 > 试题广场 >

被3整除

[编程题]被3整除
  • 热度指数:138977 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。

并且小Q对于能否被3整除这个性质很感兴趣。

小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。


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


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

输入

2 5

输出

3

说明

12, 123, 1234, 12345...
其中12, 123, 12345能被3整除。
头像 Mon0dy
发表于 2019-09-28 21:35:45
来看我们的序列,1,12,123,1234,12345...... 我们会发现第最终的答案序列模3的余数为,1,0,0,1,0,0...... 所以答案就是这个了 #include<cstdio> #include<iostream> using namespace std; 展开全文
头像 牛客题解官
发表于 2020-06-04 11:09:00
题目难度:二星考察点:找规律简要说明:这是一道找规律的题目,只要我们发现其中的规律,题目也就迎刃而解。 分析: 对于这道题来说,我们肯定不能直接从l到r遍历一遍,然后对于每个数判断是否能够被3整除,这样的复杂度太高,因为数据范围是10^9,所以我们考虑找规律,打表如下:1%3 == 展开全文
头像 c小白进击之路
发表于 2021-04-06 17:03:50
#include<stdio.h> int main() {     int r,l,tmp;     while(~scanf("%d %d",&r,&l)){      展开全文
头像 来来,offer来来
发表于 2020-03-21 00:13:03
这个题肯定不能将字符串展开去依次求和,此时有两种做法 对于每一个12345678这样的数求是否是3的倍数,结果为1+2+3+4+……,当和为两位数或者三位数时,将它们当作一个数,还是分别做每个数相加再求余不影响结果,例如102 102%3 = 0 (1+0+2)也等于0。 该题结果应该为A[i] 展开全文