关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回

POJ1207-The3n+1problem

发布时间:2022-07-27 13:56:08
  1. //这题是很基础的题目!但上级比赛时忽略了一点,总是导致wrong,哎!遗憾!!

  2. #include<iostream>
  3. using namespace std;
  4. #define MAX 10000 int main()
  5. {
  6.  int cy[MAX];
  7.  int num1,num2;  cy[0]=0;  cy[1]=1;
  8.  for(int i=2;i<MAX;i++)
  9.  {  
  10.  int c=1;   int n=i;  
  11.  while(true)   
  12. {    
  13. if(n<i)  
  14.   {   
  15.   c--;   
  16.   c+=cy[n];
  17.     cy[i]=c;
  18.     break;  
  19.   }    
  20. else   
  21.  {    
  22.  if(n%2==0)   
  23.    n=n/2;   
  24.   else   
  25.    n=3*n+1;   
  26.   c++;   
  27.  }  
  28.  }  
  29. }
  30.  while(cin>>num1>>num2)
  31.  {   
  32. int max=0;   if(num1<num2)
  33.   {  
  34.   for(int i=num1;i<=num2;i++)
  35.    {    
  36.  if(cy[i]>max)      max=cy[i];  
  37.   }  
  38.  }   
  39. else
  40.   {  
  41.   for(int i=num2;i<=num1;i++)  
  42.   {     
  43. if(cy[i]>max)      max=cy[i];   
  44.  }    
  45.   }  
  46.  cout<<num1<<" "<<num2<<" "<<max<<endl;
  47.  }  
  48. return 0;
  49. }

/template/Home/DawnNew/PC/Static

立即注册风纳云账号,免费体验多款产品

立即注册