程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> nyoj 1172 unlucky number

nyoj 1172 unlucky number

編輯:C++入門知識

nyoj 1172 unlucky number


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_張書軍

思路:和丑數思路一樣 用前面的數便利出後面的數

打個表

然後判斷l,r在表中的位置,統計unlucky numbers就行了

#include
#include
#include
#include
using namespace std;
long long a[1000000];
int c;
void init()
{
    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()
{
    init();
    long long l,r;
    while(cin>>l>>r)
    {
        int L=0,R=0;
        for(int i=0; ir)
            {
                R=i;
                break;
            }
        }
        if(a[L]==l||l==0) L--;
        printf("%d\n",R-L-1);
    }
}
        



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved