• HDU 5676 ztr loves lucky numbers


    ztr loves lucky numbers. Everybody knows that positive integers are lucky if their decimal representation doesn’t contain digits other than 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.

    Lucky number is super lucky if it’s decimal representation contains equal amount of digits 4 and 7. For example, numbers 47, 7744, 474477 are super lucky and 4, 744, 467 are not.

    One day ztr came across a positive integer n. Help him to find the least super lucky number which is not less than n.
    Input
    There are T (1≤T≤10^5) cases

    For each cases:

    The only line contains a positive integer n(1≤n≤10^18) . This number doesn’t have leading zeroes.
    Output
    For each cases
    Output the answer
    Sample Input
    2
    4500
    47
    Sample Output
    4747
    47

    思路:
    可以用STL的next_permutation。不过我写的时候不会这个(尴尬),所以还是自己老老实实写吧。
    先递归build一个记录了1到10^18的所有super lucky numbers的数组,之后只需要每次遍历就行了,
    可以再加上二分法不过这里我没用也过了,数据不是很严,主要考的是这种类似桶排序的思路。

    代码:

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    
    using namespace std;
    
    long long board[100000];
    int flag;
    
    
    void build(int a,int b,long long t){
        if(a == 0 && b == 0){
            board[flag++] = t;
            return ;
        }
        if(a!=0)build(a-1,b,t*10+4);
        if(b!=0)build(a,b-1,t*10+7);
        return;
    }
    
    int main(){
        int T;
        cin>>T;
        for(int i=1 ; i<=9 ; i++){
            build(i,i,0);
        }
        long long N;
        while(T--){
            scanf("%lld",&N);
            int i;
            for(i=0 ; i<flag ; i++){
                if(board[i]>=N){
                    printf("%lld
    ",board[i]);
                    break;
                }
            }
            if(i == flag)printf("44444444447777777777
    ");
        }
        return 0;
    }
  • 相关阅读:
    理解JavaScript变量值
    理解基本包装类型Number,String,Boolean
    理解JavaScript原始类型和引用类型
    理解JavaScript数据类型
    右值引用
    C语言中内存对齐方式
    open/fopen read/fread write/fwrite区别
    UML类图几种关系的总结
    UML类图几种关系的总结
    宏应用缺点
  • 原文地址:https://www.cnblogs.com/vocaloid01/p/9514269.html
Copyright © 2020-2023  润新知