gpt4 book ai didi

c++ - 寻找 1-1000000 之间的最大 Collat​​z 序列

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:13 25 4
gpt4 key购买 nike

<分区>

我试图找到最大的 Collatz sequence介于 1 和 1000000 之间。我在下面编写了以下代码。我想这是正确的,但速度非常慢。你能给我一些提示让它更快吗?谢谢。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool myfn(int i, int j) { return i<j; }

int collatz(int x);

int main()
{
vector <int> myvector;
for(int i = 1; i < 1000000; i++)
{
myvector.push_back(collatz(i));
}

cout<<*max_element(myvector.begin(),myvector.end(),myfn);


return 0;

}

int collatz(int x)
{
int counter = 1;


while(1)
{
if(x == 1)
break;

if(x % 2 == 0)
{
x = x / 2;
counter++;
}
else
{
x = 3 * x + 1;
counter++;
}
}

return counter;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com