Последовательность Коллатца?

Я пытаюсь решить проблему Коллатца. Все работает, за исключением одного my int high, который должен сравнивать, больше ли счетчик одного числа, чем счетчик следующего числа, похоже, не работает. Я также попробовал свою самую высокую переменную как массив, но все еще не получил результата. Спасибо за любой совет.

#include <vector>
#include <iostream>

using namespace std;

int main()
{

    __int64 num;
    int i;
    int counter=0;
    //vector<int> a(1000000);
    //vector<int> b(1000000);

    __int64 highest=0;
    int j=0;

    for(j=2;j<=1000000;j++)
    {
        num=j;
        counter=0;

        for(i=0;i<1000000;i++)
        {
            cout<<"num is: "<<j<<endl;

            if(num==1)
            {
                break;
            }

            if(num%2==0)
            {
                num = num/2;
                counter++;
                cout<<num<<endl;
            }
            else if(num%2!=0)
            {  
                counter++;
                num= (num*3)+1;
                cout<<num<<endl;
            }
        }

        cout<<"counter: "<<counter<<endl;

        //this part is not working 
        if(highest<=counter)
        {
            highest=counter;
            cout<<"highest is: "<<highest<<endl;
        }

    }

    return 0;
}

person Peter F    schedule 15.03.2013    source источник
comment
Я попытался исправить форматирование вашего кода - если вы хотите, чтобы люди помогли, постарайтесь сделать это самостоятельно в будущем. Еще один совет - люди могут не знать, что такое Collatz sequence, поэтому было бы неплохо включить объяснение (или ссылку на него).   -  person Bridge    schedule 15.03.2013