LightOJ 1136 规律

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

每三个数中有两个是符合要求的  23 123 12345 123456  12345678 123456789  这是前十个
简化后就是第n个数  只要n能被3整出  那么n和 n-1就是符合的
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<algorithm>
using namespace std;
int main()
{
	int t;
	scanf("%d",&t);
	int ans=0;
	while(t--)
	{
		ans++;
		long long a,b,cnt=0;
		scanf("%lld%lld",&a,&b);
	     long long a1,b1;
	     if(a%3==0||a%3==1)
	     {
	     	a1=(a/3)*2;
		 }
		 else
		 {
		 	if(a%3==2)
		 	{
		 		a1=(a/3)*2+1;
			 }
		 }
		 if(b%3==0||b%3==1)
	     {
	     	b1=(b/3)*2;
		 }
		 else
		 {
		 	if(b%3==2)
		 	{
		 		b1=(b/3)*2+1;
			 }
		 }
		 if(a%3==0||a%3==2)
		 {
		 	cnt++;
		 }
		 cnt+=b1-a1;
		printf("Case %d: %lld
",ans,cnt);
	}
	return 0;
}


原文地址:https://www.cnblogs.com/kingjordan/p/12027025.html