33,027
社区成员




private int[] num = new int[4] { 3111, 311, 31, 2 };
private void ReturnNum()
{
int k;
for (int i = num.Length - 1; i > 0; i--)
{
for (int j = i; j >0; j--)
{
if (GetBig(num[j], num[j - 1]))
{
k = num[j];
num[j] = num[j - 1];
num[j - 1] = k;
}
}
}
int xx = 0;
}
private bool GetBig(int n1, int n2)
{
int n1begin = int.Parse(n1.ToString().Substring(0,1));
int x1 = n1;
int x2 = n2;
if (n1 == n2)
{
x1 = n1 * 10 + n1begin;
x2 = n2 * 10 + n1begin;
}
return bijiao(x1.ToString(),x2.ToString());
}
private bool bijiao(string x1,string x2)
{
int y1 = int.Parse(x1 + x2);
int y2 = int.Parse(x2 + x1);
return y1 > y2;
}
string i2str(int i)
{
stringstream stream;
stream << i;
return stream.str();
}
bool comp(int i1, int i2)
{
string str1 = i2str(i1);
string str2 = i2str(i2);
return (str1+str2 > str2+str1);
}
int main()
{
vector<int> vecElem;
//init vecElem
sort(vecElem.begin(), vecElem.end(), comp);
string str;
for (int i = 0; i < (int)vecElem.size(); i++) {
str += i2str(vecElem[i]);
}
cout << str << endl;
}