zoukankan      html  css  js  c++  java
  • 15-幸运数组4、7

    /* 题目内容:

    YF不爱名利,所以他既不喜欢6,也不喜欢8。他的幸运数字是4和7。如果一个数字中只包含4和7,他就认为这个数字是他的幸运数。
    现在给你两个正整数a,b,要求返回a,b之间的幸运数的个数,包括a,b本身。

    输入描述

    第一行输入数目n,表示后面有n组ab
    第2行开始,每行一组a b, 空格隔开。


    输出描述

    每行输出一个数,即a,b之间的幸运数的个数。


    输入样例

    3
    11 20
    4 7
    1 10
    输出样例

    0
    2
    2
    */

    #include <iostream>
    using namespace std;
    int lucky[10000005]; //注意大小,小了一直是 答案错误

    void countlucky(){
        for(int i = 1; i <= 10000000; i++){
            int c, d, e, f, g, h, y = i;
            int flag = 1;
            if(y % 10 == 0)
                flag = 0;
            while(y % 10 && flag){
                c = y % 10; y /= 10;
                if(c != 4 && c != 7)
                    flag = 0;
            }
            if(flag && y == 0)  // 101 y = 10
                lucky[i] = 1;
    //        c = y % 10; y /= 10;
    //        d = y % 10; y /= 10;
    //        e = y % 10; y /= 10;
    //        f = y % 10; y /= 10;
    //        g = y % 10; y /= 10;
    //        h = y % 10; y /= 10;
    //        if(i < 10)
    //            lucky[4] = lucky[7] = 1;
    //        if(i < 100){
    //            if((c == 4 || c == 7) && (d == 4 || d == 7))
    //                lucky[i] = 1;
    //        }
    //        if(i < 1000 && (c == 4 || c == 7) && (d == 4 || d == 7) && (e == 4 || e == 7))
    //            lucky[i] = 1;
    //        if(i < 10000 && (c == 4 || c == 7) && (d == 4 || d == 7) && (e == 4 || e == 7) && (f == 4 || f == 7))
    //            lucky[i] = 1;
    //        if(i < 100000 && (c == 4 || c == 7) && (d == 4 || d == 7) && (e == 4 || e == 7) && (f == 4 || f == 7)
    //          && (g == 4 || g == 7))
    //            lucky[i] = 1;
    //        if(i < 100000 && (c == 4 || c == 7) && (d == 4 || d == 7) && (e == 4 || e == 7) && (f == 4 || f == 7)
    //          && (g == 4 || g == 7) && (h == 4 || h == 7))
    //            lucky[i] = 1;     
            lucky[i] += lucky[i - 1];
        }
    }

    int main(){
        ios::sync_with_stdio(false);
        int n;
    //    cin >> n;
        countlucky();
    //    while(n--){
            int a, b;
            cin >> a >> b;
            cout << lucky[b] - lucky[a - 1] << endl;
    //    }
        return 0;
    }

  • 相关阅读:
    php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项
    Linux 文件系统IO性能优化【转】
    MOOC Linux内核之旅小结【转】
    python实战===教你用微信每天给女朋友说晚安【转】
    wxpy: 用 Python 玩微信【转】
    AMBA总线协议AHB、APB、AXI对比分析【转】
    高手进阶,终极内存技术指南——完整/进阶版 II (转)【转】
    ARMCC和GCC编译ARM代码的软浮点和硬浮点问题 【转】
    程序员必知之浮点数运算原理详解【转】
    Hash算法【转】
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/7429737.html
Copyright © 2011-2022 走看看