LightOJ 1136 Division by 3(取模)

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);
   }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值