1005

作者: 峡迩 | 来源:发表于2017-07-16 00:04 被阅读0次
    #include<iostream>
    #include<set>
    #include<vector>
    #include<string>
    #include<algorithm>
    
    using namespace std;
    
    set<int> callatz(set<int> &no_key_numbers,unsigned n)
    {
        while (1 != n)
        {
            if (0 == n % 2)
            {
                n = n / 2;
            }
            else
            {
                n = (3 * n + 1) / 2;
            }
            no_key_numbers.insert(n);
        }
        return no_key_numbers;
    }
    
    int main()
    {
        unsigned k;
        unsigned tmp;
        set<int> no_key;
        vector<int> input_numbers;
    
        cin >> k;
        while (k > 0)
        {
            cin >> tmp;
    
            input_numbers.push_back(tmp);
    
            if(no_key.cend()==no_key.find(tmp))
                callatz(no_key,tmp);
    
            --k;
        }
    
        string s_out;
        sort(input_numbers.begin(), input_numbers.end());
        for (auto r : input_numbers)
        {
            if (no_key.cend() == no_key.find(r))
                s_out = string(" ")+to_string(r)+ s_out;
        }
        s_out.erase(0, s_out.find_first_not_of(" "));
        cout << s_out;
    
        system("pause");
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:1005

          本文链接:https://www.haomeiwen.com/subject/wszzhxtx.html