352A - Jeff and Digits【题意理解不全面,粗心】

时间:2021-06-22 19:08:42

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