NYOJ---题目1172unlucky number

来源:互联网 发布:免手机号注册qq 知乎 编辑:程序博客网 时间:2024/06/02 01:58

unlucky number

时间限制:1000 ms  |  内存限制:65535 KB
难度:0
描述
我们定义在区间【l,r】之间只出现1和7组合的数是unlucky number,例如:1 、7、 11、17 都是unlucky numbers ,而 13 、27则不是,问在区间【l,r】内有多少 unlucky numbers??
输入
有多组测试数据(不超过100组)
每组输入两个整数l,r( 0 =< l<= r <= 10^18)
输出
每行输入一个结果
样例输入
1 7
样例输出
2
上传者
ACM_张书军

 

题意:这道题wrong了很多次,我知道是用打表法,可是就是写不出来,后来看见网上别人的方法,第一次见识了原来大牛可以这样写:

#include<iostream>#include<stdio.h>#include<math.h>#include<algorithm>using namespace std;int c;long long a[1000000];void fun(){    c=0;    a[c++]=1;    a[c++]=7;    int k=0;    while(a[c-1]<=1e18)    {        a[c++]=a[k]*10+1;        a[c++]=a[k]*10+7;        k++;    }}int main(){    long long n,m;    while(cin>>n>>m)    {        int count=0;        fun();        for(int i=0;i<c;i++)        {            if(a[i]>=n&&a[i]<=m)            {                count++;            }        }        printf("%d\n",count);    }    return 0;}


1 0
原创粉丝点击