杭电1032题

//输出i和j中的最大循环长度
//注意细节:i和j的大小不确定
#include <stdio.h>
int main()
{
 int i,j;
 while(scanf("%d%d",&i,&j)!=EOF)
 {
  bool isswap = false;
  if(i>j)
  {
            int temp=i;
     i=j;
     j=temp;
     isswap=true;
  }

  int maxtimes=0;
  int maxdata=0;
  for(int p=i;p<j+1;p++)
  {
   int times=1;
   int data=p;
   while(data!=1)
   {
    if(data%2==1)
    {
     data=3*data+1;
    }
    else
    {
     data=data/2;
    }
    times++;
   }
   if(times>maxtimes)
   {
    maxtimes=times;
    maxdata=data;
   }
  }
  //输出时也要注意i和j的大小
  if(isswap)
   printf("%d %d %d\n",j,i,maxtimes);
  else
   printf("%d %d %d\n",i,j,maxtimes);
 }
 return 0;
}

posted @ 2010-04-25 20:50  北海小龙  阅读(311)  评论(0编辑  收藏  举报