题意
小K手中有n张牌,每张牌上有一个一位数的数,这个字数不是0就是5。小K从这些牌在抽出任意张(不能抽0张),排成一行这样就组成了一个数。使得这个数尽可能大,而且可以被90整除。
注意:
1.这个数没有前导0,
2.小K不需要使用所有的牌。
解题思路
本题关键在于555555555%9=0,所以至少需要9个5、一个0组成的数能被90整除或者0被90整除。
参考代码
#include <iostream>
using namespace std;
int main(){
int n,k;
while (cin>>n){
int x=0,y=0;
while (n--){
cin>>k;
if (k==5) x++;
else y++;
}
if (x>=9&&y>=1){
while (x>=9){
cout<<"555555555";
x-=9;
}
while (y--){
cout<<"0";
}
cout<<endl;
}
else if (y>=1){
cout<<0<<endl;
}
else{
cout<<"-1"<<endl;
}
}
return 0;
}