1005 继续(3n+1)猜想(25 分)

#include
#include
#include
#include
#include
using namespace std;
int num[120], temp[120], k;
bool f[1000000];
int main()
{
    scanf("%d", &k);
    for (int i = 0; i < k; i++)
    {
        scanf("%d", &num[i]);
        temp[i] = num[i];
    }
    for (int i = 0; i < k; i++)
    {
        while (num[i] != 1)
        {
            if (num[i] % 2 == 0)num[i] /= 2;
            else num[i] = (3 * num[i] + 1) / 2;
            f[num[i]] = true;
        }
    }
    vectorans;
    for (int i = 0; i < k; i++)
    {
        if (f[temp[i]] == false)ans.push_back(temp[i]);
    }
    sort(ans.begin(), ans.end(), greater());
    for (int i = 0; i < ans.size(); i++)
    {
        printf("%d", ans[i]);
        if (i != ans.size() - 1)printf(" ");
    }
    return 0;
}

你可能感兴趣的:(1005 继续(3n+1)猜想(25 分))