码迷,mamicode.com
首页 > 其他好文 > 详细

1005 继续(3n+1)猜想

时间:2020-02-14 23:05:21      阅读:31      评论:0      收藏:0      [点我收藏+]

标签:==   n+1   span   back   namespace   数组   ace   ret   pre   

#include"iostream"
#include"vector"
#include"algorithm"
using namespace std;

bool hashtable[20000] = {false}; //因为待映射的值可能比较大,所以数组开大一点,不然最后两个测试点会出现 段错误
bool cmp(const int& a,const int& b) {
    return a>b;
}
int n,a[200];
int main() {
    cin>>n;
    for(int i = 0; i < n; ++i) {
        scanf("%d",&a[i]);
        int t = a[i];
        while(t != 1) {
            if(t%2 == 0) t/=2;
            else t = (3*t+1)/2;
            hashtable[t] = true;
        }
    }
    vector<int> vi;
    for(int i = 0; i < n; ++i) {
        if(hashtable[a[i]] == false)
            vi.push_back(a[i]);
    }
    sort(vi.begin(),vi.end(),cmp);
    for(int i = 0 ; i < vi.size(); ++i) {
        cout<<vi[i];
        if(i < vi.size() - 1)
            cout<<" ";
    }
    return 0;
}

 

1005 继续(3n+1)猜想

标签:==   n+1   span   back   namespace   数组   ace   ret   pre   

原文地址:https://www.cnblogs.com/keep23456/p/12309741.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!