首页 > 其他 > 详细

hdu 1032

时间:2016-09-26 19:59:44      阅读:136      评论:0      收藏:0      [点我收藏+]

 

 题目的意思是把输入的i,j 从i到j的每一个数 做循环,输出循环次数最大的值

易错的地方:做循环是容易直接用i进行计算 i=i/2;或i=i*3+1; 这样i的值改变就不能在做下面数的循环

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
  int i,j,t,max,cnt,n,a;
  while(cin>>i>>j)
  {
    cout<<i<<‘ ‘<<j<<‘ ‘;
    max=-100;
    if(i>j)
    {
      t=j;
      j=i;
      i=t;
    }
    for(a=i;a<=j;a++)
    {
      n=a; //注意
      cnt=1;
      while(n-1)
      {
        if(n%2==0)
          n=n/2;
        else
          n=3*n+1;
        cnt++;

      }
      if(cnt>max)
        max=cnt;
    }
    cout<<max<<endl;
  }
  
  return 0;
}

 

hdu 1032

原文:http://www.cnblogs.com/zxff/p/5910357.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!