被三整除

Posted Kiven#5197

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了被三整除相关的知识,希望对你有一定的参考价值。

题目:

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

输入描述:

输入包括两个整数lr, 表示要求解的区间两端。

输出描述:

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

样例:

in:
2 5

out:
3

 

判断一个数能否被三整除的方法为各个位数和是否能被3整除,则1.2.3.4....分别对3取模得1.2.0.1.2.0.1.2.0.....

则1,12,123,1234...可分解为1,,1+2=0,0+3=0,0+1,0+1+2=0,0+3=0...

由此可得true,false,false每3个一循环

 

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int fun(int a){
 5     return a/3*2+(a%3==0?0:a%3==1?0:1);
 6 }
 7 
 8 int main(){
 9     int l,r,sum;
10     cin>>l>>r;
11     sum=fun(r)-fun(l-1);
12     cout<<sum<<endl;
13     return 0;
14 }

 

以上是关于被三整除的主要内容,如果未能解决你的问题,请参考以下文章

leetcode中等1262可被三整除的最大和

leetcode中等1262可被三整除的最大和

LeetCode 5365. 可被三整除的最大和 Greatest Sum Divisible by Three

求十到1000之间能被三或五或八整除的数之和的c语言程序

930. 和相同的二元子数组/238. 除自身以外数组的乘积/1262. 可被三整除的最大和/NC90 设计getMin功能的栈/NC67连续子数组的最大和/NC115 栈和排序

剑指56-2 数组中数字出现的次数