Description
There is sequence 1, 12, 123, 1234, ..., 12345678910, ... . Now you are given two integers A and B, you have to find the number of integers fromAth number to Bth (inclusive) number, which are divisible by 3.
For example, let A = 3. B = 5. So, the numbers in the sequence are, 123, 1234, 12345. And 123, 12345 are divisible by 3. So, the result is 2.
Input
Input starts with an integer T (≤ 10000), denoting the number of test cases.
Each case contains two integers A and B (1 ≤ A ≤ B < 231) in a line.
Output
For each case, print the case number and the total numbers in the sequence between Ath and Bth which are divisible by 3.
Sample Input
2
3 5
10 110
Sample Output
Case 1: 2
Case 2: 67
一些数:1, 12, 123, 1234, ..., 12345678910, ... 然后给出两个数A, B,求出第A个数和第B数之间又多少个数能够被3整除。
一个数的数字和相加能被三整除,那么这个数也能被3整除。
连续三个整数并排在一起组成的数的数字和必然能被3整除。
1.题目中的第3K个数,必然能被三整除。
2. 题目中的第3K + 1个数,其第2个数字到最末一个数字之和必然能被3整除,再加上第一个数字,也就是1,就不能被3整除了。
3. 题目中的第3K + 2个数,其第3个数字到最末一个数字之和必然能被3整除,再加上第一、二个数字,也就是1 + 2 = 3,也能被3整除
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<string.h>
#include<algorithm>
#define ll long long
#define IT acos(-1.0)
using namespace std;
int main()
{ int t,m=1,n,k,ans;
scanf("%d",&t);
while(t--)
{scanf("%d%d",&n,&k);
int l1=k/3*2;
int l2=(n-1)/3*2;
if(k%3==2)
l1+=1;
if((n-1)%3==2)
l2+=1;
printf("Case %d: %d\n",m++,l1-l2);
}
}