小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。
并且小Q对于能否被3整除这个性质很感兴趣。
小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。
小Q得到一个神奇的数列: 1, 12, 123,...12345678910,1234567891011...。
并且小Q对于能否被3整除这个性质很感兴趣。
小Q现在希望你能帮他计算一下从数列的第l个到第r个(包含端点)有多少个数可以被3整除。
输入包括两个整数l和r(1 <= l <= r <= 1e9), 表示要求解的区间两端。
输出一个整数, 表示区间内能被3整除的数字个数。
2 5
3
12, 123, 1234, 12345...
其中12, 123, 12345能被3整除。
a, b = map(int, input().split()) c = 0 for i in range(a,b+1): if (i-1)%3 == 0: c = c + 1 print(b-a+1-c)先找到规律,然后找不能被三整除的
关键是将列表内整数转换成字符串然后合并字符串 while True: try: count=0 l=int(input()) r=int(input()) for i in range(l,r+1): b=[str(j) for j in range(1,i+1)] b=''.join(b) b=int(b) if b%3==0: count+=1 print(count) except: break
try: while True: a = input().split() time = 1 count = 0 result = [] temp1 = int(a[0]) temp2 = int(a[1]) while time <= temp2: result.append(str(time)) time += 1 result1 = ''.join(result) while temp1 <= temp2: num = int(result1[:temp1]) if num % 3 == 0: count += 1 temp1 += 1 print(count) except: pass
d_start,d_end = input().split() count=0 def data_gennerate(n): if n==1: return 1 else: ssdata=int(data_gennerate(n-1))*(10**(len(str(n))))+n return ssdata for i in range(int(d_start),int(d_end)+1): if data_gennerate(i)%3==0: count=count+1 print(count) #求检察错误
import sys l,r=map(int,sys.stdin.readline().split()) def getnum(integer): if integer-integer//3*3==2: s=1 else: s=0 return integer//3*2+s print(getnum(r)-getnum(l-1))
python
while 1: try: lists = list(map(int, input().strip().split(' '))) l = lists[0] r = lists[1] cnt = 0 resum = 0 for i in range(1, l + 1): resum += i if resum % 3 == 0: cnt += 1 secsum = 0 for j in range(l+1, r+1): secsum = resum + j + secsum if secsum % 3 == 0: cnt += 1 print(cnt) except: break
def getNum(n): if(n<1): return 0 else: num = (n // 3) * 2 if(n % 3)>1: num += 1 return num datain = input().strip().split() l = int(datain[0]) r = int(datain[1]) print(getNum(r)-getNum(l-1)) print(getNum(r)-getNum(l-1))