0

在这里的一些人的帮助下,我设法在 Collat​​z 函数中找到了初始值 1 到 1000 范围内的停止值。Collat​​z 函数 (我的错误是通过在 for 循环中使用新变量 say s 而不是 c 然后让 c=s 来排序的)。

我现在正在尝试生成代码来跟踪这些初始值(1 到 1000)的最大停止值(计数),然后在最后输出。如果他们知道如何做到这一点,谁能给我一些指示?

谢谢。

4

1 回答 1

0

在第一次运行循环之前定义最大值为零。然后检查您的停止值是否大于当前最大值:如果是,则将当前最大值设置为当前停止。每次找到停止值时重复此操作。

#include <iostream>
using namespace std;

int main()
{
long max = 0;
for(long c=2, c<=1000; c++) // define stopping value as 0 for c=1 elsewhere
{
long count=0;

while (c!=1)
{
    if((c%2)==0)
    {
        c/=2;
    }
    else
    {
        c=3*c+1;

    }

    count ++;
}

if ( count > max ) max = count;
cout << "The stopping value for " << c << " is " << count << endl;

}

cout << "The max stopping value is " << max << endl;
return 0;
}
于 2012-11-19T09:14:34.427 回答