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 <stdio.h>
    #include <iostream>
    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;
    }

  • 你可能感兴趣的:(百度,fun)