HDOJ3782(xxx定理)
/* 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;
}
作者:火星十一郎
本文版权归作者火星十一郎所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

浙公网安备 33010602011771号