现在的位置: 首页 > 综合 > 正文

The 3n + 1 problem

2014年02月22日 ⁄ 综合 ⁄ 共 443字 ⁄ 字号 评论关闭

真心不想说什么,这道题注意i不一定比k小,而且还得按原顺序输出i和k。数据是很水的,在我的电脑上i=1;k=1000000时要等3s左右,在hdu上居然为0s。无语ing。

#include<stdio.h>

int main()

  __int64 count,max,i,k,j,t,f;
  while(scanf("%I64d%I64d",&i,&k)==2)
  {   f=0;
      if(i>k)
 {t=i;
  i=k;
  k=t;
  f=1;
 }
 max=0;
      for(j=i;j<=k;j++)
 {   count=0;t=j;
     while(t!=1)
 { count++;
   if(t%2==0)
t=t/2;
else t=t*3+1;
 }
 if (count+1>max)
 max=count+1;
 }
 if(f)
   printf("%I64d %I64d %I64d\n",k,i,max);
 else printf("%I64d %I64d %I64d\n",i,k,max);
  }
return 0;
}

抱歉!评论已关闭.