能被910整出,则一定含有0,没有0,直接-1 你会发现能被9整除的数有一个规律 81=>8+1=9 72=>7+2=9 555555555=>9个5=>59=45=>4+5=9 所以可以知道能被9整除需要9个5,18个5,27个5 总结:只需要知道给了几个5,然后求出max(n)%9==0的n即可,比如给了30个5,则要拿27个5,再把0接到后面就是最大的数啦
#include <iostream>
#include<string.h>
#include<sstream>
#include<algorithm>
#include <math.h>
#include <set>
#include <map>
#include <vector>
#include <set>
#include <queue>
#include<stack>
#define ll long long
using namespace std;
ll a[30005];
int cmp(int x,int y)
{
return x>y;
}
int main()
{
int n;
cin>>n;
for(ll i=1; i<=n; i++)
{
cin>>a[i];
}
int sum = count(a+1,a+n+1,5);
int sum2 = count(a+1,a+n+1,0);
// cout<<sum<<" "<<sum2<<endl;
if(sum2!=0)
{
//选几个5
ll num = 0;
if(sum>=9)
{
for(ll i =sum; i>=9; i--)
{
if(i%9==0)
{
num = i;
break;
}
}
}
//一个5都没选
if(num==0)
{
cout<<0;
}
else
{
for(ll i=1; i<=num; i++)
{
cout<<5;
}
for(ll i=1; i<=sum2; i++)
{
cout<<0;
}
}
}
else
{
cout<<-1;
}
return 0;
}