![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/201fd815dd9d70d9321b24ffe4b9cc8f.png)
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
class caixiang
{
public:
vector<int> m_allnum;
};
int main()
{
int i, j, k, m, n;
cin >> i;
vector<int> final;
caixiang* a = new caixiang[i];
bool ZT = false;
int* b = new int[i];
for (j = 0; j < i; j++)
{
cin >> m;
b[j] = m;
while (m != 1)
{
if (m % 2 == 0)
{
m = m / 2;
a[j].m_allnum.push_back(m);
}
else
{
m = (3 * m + 1) / 2;
a[j].m_allnum.push_back(m);
}
}
}
for (j = 0; j < i; j++)
{
for (k = 0; k < j; k++)
{
for (n = 0; n < (a[k].m_allnum.size()); n++)
{
if (b[j] == a[k].m_allnum[n])
{
ZT = true;
}
}
}
for (k = j + 1; k < i; k++)
{
for (n = 0; n < (a[k].m_allnum.size()); n++)
{
if (b[j] == a[k].m_allnum[n])
{
ZT = true;
}
}
}
if ((ZT == false) && (b[j] != 1))
{
final.push_back(b[j]);
}
ZT = false;
}
int temp;
for (j = 0; j < final.size(); j++)
{
for (k = j + 1; k < final.size(); k++)
{
if (final[j] < final[k])
{
temp = final[j];
final[j] = final[k];
final[k] = temp;
}
}
}
for (j = 0; j < final.size() - 1; j++)
{
cout << final[j] << " ";
}
cout << final[final.size() - 1];
return 0;
}