/* 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\n",vis[num]); clock2=clock(); printf("%d\n",clock2-clock1); system("pause"); return 0; }