2013年10月25日 星期五

[UVA] 100 - The 3n + 1 problem

/*20131026 hanting*/
#include <iostream>
using namespace std;
typedef long long L;
int main()
{
    L a,A,b,m;
    while(cin>>a>>b)
    {
        L MAX=0;
        cout<<a<<" "<<b;
        if(a>b)
        {
            A=a;
            a=b;
            b=A;
        }
        for(L i=a;i<=b;i++)
        {
             A=i;
             L cycle_length=1;
             while(A!=1)
            {
                cycle_length++;
                if(A%2==1)
                {
                    A=A*3+1;
                }
                else
                {
                    A/=2;
                }
            }
            m=cycle_length;
            if(m>MAX)
            {
                MAX=m;
            }
        }

        cout<<" "<<MAX<<endl;
    }
    return 0;
}

沒有留言:

張貼留言