0和5

来源:互联网 发布:淘宝订单能删除吗 编辑:程序博客网 时间:2024/04/29 03:13

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

注意:

1.这个数没有前导0

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

思路:5的数量是9的倍数,则该数可被9整除。

#include <iostream>#include <vector>using namespace std;void fun(vector<int> &input, int N){    int numFive = 0;    int numZero = 0;    for (int i = 0; i < N; i++)    {        if (input[i] == 5)        {            numFive++;        }        else        {            numZero++;        }    }        if (numZero < 1)    {        cout << "-1" << endl;        return;    }    if (numFive < 9)    {        cout << "0" << endl;        return;    }        int count = numFive/9;    count *= 9;        for (int i = 0; i < count; i++)    {        cout << "5";    }        for (int i = 0; i <numZero; i++)    {        cout << "0";    }    cout << endl;}int main(){    int N;    cin >> N;    vector<int> input;    int a;    for (int i = 0; i < N; i++)    {        cin >> a;        input.push_back(a);    }        fun(input, N);        return 0;}


0 0
原创粉丝点击