HDOJ 3782(xxx定理)

965 ワード

/* Note:Your choice is C IDE */
#include <stdio.h>
#include<time.h>
#include<stdlib.h>
int vis[1005];
int num;
void fun()
{
	int i,j;int cnt=0;
	vis[1]=0;
	for(j=2;j<=1005;j++)
	{
		/*
		        ,            ,        ;
		       ,                 ,   i=j
		 ok 
		*/ 
		cnt=0;i=j;
		while(i!=1)
		{
			if(i&1)
			{
				i=3*i+1;
				i>>=1;
				cnt++;
			}
			else
			{
				i>>=1;
				cnt++;
			}
		}
				vis[j]=cnt;
	}
}  			
int main()
{
	int clock1,clock2;
	clock1=clock(); 
	fun();
    scanf("%d",&num);
	printf("%d
",vis[num]); clock2=clock(); printf("%d
",clock2-clock1); system("pause"); return 0; }