11567 - Moliu Number Generator

#include<cstdio>
int main()
{
    long long a,n,counter;
    while(scanf("%lld",&n)==1)
    {
        counter=0;
        for(;;)
        {
            if(n==3)
            {
                counter=counter+3;
                break;
            }
            if(n==0)
            {
                break;
            }
            if(n%2==0)
            {
                n=n/2;
                counter++;
            }
            else if(n%2==1)
            {
                a=n-1;
                a=a/2;
                if(a%2==0)
                {
                    n=n-1;
                }
                else
                {
                    n=n+1;
                }
                counter++;
            }
        }
        printf("%lld\n",counter);
    }
    return 0;
}

0 comments: (+add yours?)