题意:给一些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("");
}