zoukankan      html  css  js  c++  java
  • 喵哈哈村的狼人杀大战(2)

    http://qscoj.cn/problem/31/

    描述

    喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!

    星星同学今天她抽到的是狼的身份,按照她的一贯玩法,她喜欢无情的屠杀掉所有的神。

    她现在已经很清楚了场上的预言家,女巫,猎人是谁。但是她唯一不知道的就是白痴这张神牌在谁的身上。于是她诈一诈她的下家——天行廖。

    星星同学的逻辑是这样的:她可以考一道题给天行廖,如果天行廖能够答上来的话,那么天行廖肯定不是白痴,因为白痴是答不上题的。

    这道题是这样的:

    如果一个数只包含4和7的话,那么这个串就是幸运数,比如4777,774就是幸运数,而467就不是幸运数。

    如果一个幸运数中包含的4和7的数量相同的话,那么这个数就是超级幸运数,比如4747就是超级幸运串,447就不是。

    现在给你一个n,你需要找到一个最小的超级幸运数,并且这个超级幸运数大于等于n。

    本题包含若干组测试数据。
    第一行一个整数n。

    满足 1<=n<=10^9

    输出最小的超级幸运数,。

                       
    47
    4500
    47
    4747
    因害怕时间超限,或者是漏掉某些情况而导致答案错误,故果断选择了打表。
    #include<iostream>
    using namespace std;
    const int mm=1e9+9;
    //long long a[110];
    long long a[101]={47,74,4477,4747,4774,7447,7474,7744,444777,447477,
    447747,447774,474477,474747,474774,477447,477474,477744,744477,744747,
    744774,747447,747474,747744,774447,774474,774744,777444,44447777,44474777,
    44477477,44477747,44477774,44744777,44747477,44747747,44747774,44774477,44774747,44774774,
    44777447,44777474,44777744,47444777,47447477,47447747,47447774,47474477,47474747,47474774,
    47477447,47477474,47477744,47744477,47744747,47744774,47747447,47747474,47747744,47774447,
    47774474,47774744,47777444,74444777,74447477,74447747,74447774,74474477,74474747,74474774,
    74477447,74477474,74477744,74744477,74744747,74744774,74747447,74747474,74747744,74774447,
    74774474,74774744,74777444,77444477,77444747,77444774,77447447,77447474,77447744,77474447,
    77474474,77474744,77477444,77744447,77744474,77744744,77747444,77774444,4444477777};//注意,最后最好单独添加一个上限4444477777.
    int main()
    {
        /*long long k=0,sum,count,n,i,m;
        for(i=47;i<=77774444;i++)
        {
            n=i;
            bool flag=true;
            sum=count=0;
            while(n)
            {
                m=n%10;
                if(m==4 || m==7)
                {
                    if(m==4) sum++;
                    else count++;
                }
                else
                {
                    flag=false;
                    break;
                }
                n/=10;
            }
            if(flag==true && sum==count) a[k++]=i;
        }
        cout<<k<<endl;
        for(i=0;i<k;i++)
        {
            if(i) cout<<',';
            cout<<a[i];
        }*/
        long long n,i;
        while(cin>>n)
        {
            for(i=0;i<=100;i++)
            {
                if(a[i]>=n)
                {
                    cout<<a[i]<<endl;
                    break;
                }
            }
        }
        return 0;
    }
  • 相关阅读:
    SHELL基础
    阿里
    Ansible基础
    js实现的跳转页面方法实现汇总
    绕过js-sdk,微信转发的时候在标题添加时间和地点。
    wechat-js-sdk
    js调用百度地图api实现定位
    微创网站工作总结:用错地方的资源
    项目进行时—整理
    js实现双击改变文本内容
  • 原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/6518914.html
Copyright © 2011-2022 走看看