题目描述
HXY得到了一些卡片,这些卡片上标有数字 0 或 5。现在她可以选择其中一些卡片排成一列,使得排出的一列数字组成的数最大,且满足被 90 整除这个条件。同时,这个数必须为合法的某个非负整数,即不能含有前导 0 ,即 0不能作为这串数的首位。但是特殊地,整数 0满足条件。如果不能排出这样的数,输出“−1”。
输入格式
第一行,卡片的个数 n 。
第二行,分别给出了这 n 个数(只能为数字 5 或 0 )。
输出格式
仅一行,如果可以排出,则输出这个数。否则输出-1
。
下面就是你们喜欢的代码啦!
#include<bits/stdc++.h>
using namespace std;
int n,a[2100],s=0,e=0;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]==5)
s++;
}
e=n-s;
if(9>s)
{
if(e>0)
{
cout<<"0";
return 0;
}
}
if(9>s&&e==0)
{
cout<<"-1\n";
return 0;
}
for(int i=1;i<=s;i++)
{
if(i*9>s)
{
for(int j=1;j<=(i-1)*9;j++)
{
cout<<"5";
}
for(int j=1;j<=e;j++)
{
cout<<"0";
}
break;
}
}
return 0;
}
希望大家喜欢我的代码哦!