• 51nod 1433 0和5(9的倍数的规律)


    题目来源: CodeForces
    基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题
    收藏
    关注
    取消关注

    小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5。小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数。使得这个数尽可能大,而且可以被90整除。

    注意:

    1.这个数没有前导0,

    2.小K不需要使用所有的牌。


    Input
    每个测试数据输入共2行。
    第一行给出一个n,表示n张牌。(1<=n<=1000)
    第二行给出n个整数a[0],a[1],a[2],…,a[n-1] (a[i]是0或5 ) 表示牌上的数字。
    Output
    共一行,表示由所给牌组成的可以被90整除的最大的数,如果没有答案则输出”-1”(没有引号)
    Input示例
    4
    5 0 5 0
    Output示例
    0

    分析:一个数能被9整除,则其各个位上的数之和也能被9整除。而能被90整除除了各个位上的数之和能被9整除,其个位数一定是0(能被10整除)。
    所以,选9的整数倍个5(尽可能多)排在最前面,后面添0(尽可能多)即可。

    #include <iostream>
    using namespace std;
    int a;//5的数量
    int b;//0的数量
    int main()
    {
        ios::sync_with_stdio(false);
        int n;
        while(cin>>n)
        {
            a=0,b=0;
            while(n--)
            {
                int tmp;
                cin>>tmp;
                if(tmp==5) a++;
                else b++;
            }
            if(!b)
                cout<<-1<<endl;
            else if(a<9)
                cout<<0<<endl;
            else
            {
                a-=a%9;
                while(a--)
                    cout<<5;
                while(b--)
                    cout<<0;
                cout<<endl;
            }
        }
        return 0;
    }
     
  • 相关阅读:
    [转]ThinkCMF框架任意内容包含漏洞分析复现
    nodejs环境安装
    ffmpeg+nginx-rtmp-module
    activemq安装
    mysql审计插件
    sql优化工具SQLAdvisor的安装
    Harbor安装(docker-compose) -- 企业级Registry仓库
    在CentOS上部署kubernetes1.9.0集群
    3-基础概念(数据模型、时序 4 种类型、作业和实例)
    1-什么是 Prometheus
  • 原文地址:https://www.cnblogs.com/onlyli/p/7295704.html
Copyright © 2020-2023  润新知