小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整除。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int l = sc.nextInt(); int r = sc.nextInt(); System.out.println(divide3(l, r)); } } private static long divide3(long l, long r) { long result = 0, sum = 0; for (long i = 1; i < l; i++) { sum += i; } for (long i = l; i <= r; i++) { sum = (sum + i) % 3; if (sum % 3 == 0) { result++; } } return result; } }
a = input()l = int(a.split(" ")[0]) r = int(a.split(" ")[1]) sum = 0
p = int((r - l) / 9) count = p * 6
for i in range((l % 9) + 1):
sum = sum + i
for i in range((r - l) % 9 + 1):
if(sum % 3 == 0):
count += 1
sum = sum + (l % 9) + i + 1
print(count)