B:小小度刷礼品

提交 提交记录
时间限制:
1000ms
内存限制:
65536kB
描述

一年一度的百度之星又开始了,这次参赛人数创下了吉尼斯世界纪录,于是百度之星决定奖励一部分人:所有资格赛提交ID以x结尾的参赛选手将得到精美礼品一份。

小小度同学非常想得到这份礼品,于是他就连续狂交了很多次,提交IDa连续到b,他想问问你他能得到多少份礼品,你能帮帮他吗?


输入
第一行一个正整数T表示数据组数;
接下来T行,每行三个不含多余前置零的整数x,a,b (0 <=x <= 10^18, 1 <= a,b <= 10^18,a <= b)
输出
T行,每行为对应的数据情况下,小小度得到的礼品数
样例输入
1
88888 88888 88888
样例输出
1
 
#include 
#include 
using namespace std;

long long fun(int n)
{
	long long sum=1;
	while (n--)
		sum*=10;
	return sum;
}
int main()
{
	int t;
	long long x,a,b;
	scanf("%d",&t);
	while (t--)
	{
		scanf("%lld %lld %lld",&x,&a,&b);
		long long cnt=0;
		int len_x=sizeof(x)/sizeof(int);
		int len_a=sizeof(a)/sizeof(int);
		int len_b=sizeof(b)/sizeof(int);
		for (long long i=a; i<=b; ++i)
		{
			int len_i=sizeof(i)/sizeof(int);
			if (0==(a-x)%fun(len_i-len_x))
			{
				cnt++;
				i+=x;
			}
		}
		printf ("%lld\n",cnt);
	}
	return 0;
}

你可能感兴趣的:(OJ简单题)