代码:
#include <iostream>
using namespace std;
int main()
{
int n,a;
cin >> n;
int arr[100] = { 0 };
int arr1[100] = { 0 };
for (int i = 0; i < n; i++)
{
cin >> arr[i];
if (arr[i] >= 1 && arr[i] <= 100)
{
arr1[i] = arr[i];
}
else
arr1[i] = 1;
}
for (int i = 0; i < n && arr[i] != 1; i++)
{
if (arr[i] % 2 == 1)
arr[i] = (3 * arr[i] + 1) / 2;
else
arr[i] = arr[i] / 2;
for (int j = 0; j < n; j++)
{
if (arr[i] == arr1[j])
arr1[j] = 1;
}
}
for (int i = 0; i < n-1; i++)
{
for (int j = i+1; j < n; j++)
{
if (arr1[i] < arr1[j])
{
a = arr1[i];
arr1[i] = arr1[j];
arr1[j] = a;
}
}
}
cout << arr1[0];
for (int i = 1; i < n; i++)
{
if (arr1[i] != 1)
cout << ' ' << arr1[i];
}
return 0;
}
测试结果:只有第一个测试点过了