题意:给一些5和0,要求输出最大的 并且 能被 90整除的数字。

思路:首先,要被90整除,这个数中5的个数必须是9的倍数,其次,还要有0才能被90整除。 5和0的数量确定了之后,输出就好了。

错误原因:题目要求没看清楚啊~~ 不可能的输出-1,傻了就输出了0。

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const int maxn=1e3+30;
int a[maxn];

int main(void)
{
    int n;
    cin >> n;
    int cnt5=0,cnt0=0;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
        if(a[i]==0)
            cnt0++;
        else if(a[i]==5)
            cnt5++;
    }
    if(cnt0==0)
    {
        printf("-1\n");
        return 0;
    }
    if(cnt5<9)
    {
        printf("0\n");
        return 0;
    }
    int x=cnt5/9*9;
    for(int i=1;i<=x;i++)
        printf("5");
    for(int i=1;i<=cnt0;i++)
        printf("0");
    puts("");
}