【练习01】 简单题(1)1010

来源:互联网 发布:网络商品中介交易 编辑:程序博客网 时间:2024/06/06 09:42

The 3n + 1 problem



#include <iostream>   #include <vector>   using namespace std;  int main()  {      int m,n;      while (cin>>m>>n)      {          int result=0,max,min;          //①此处最为关键,因为题目中并未指明输入大的在前           if(m<=n)          {              min=m;              max=n;          }          else          {              min=n;              max=m;          }          for(int i=min;i<=max;i++)          {              int count=0;              int temp=i;              while(temp!=1)              {                  count++;                  if(temp%2)                      temp=3*temp+1;                  else                      temp=temp/2;              }              //②最终的终止未计算在内,所以需要+1               count++;              if (count>result)                  result=count;          }          cout<<m<<" "<<n<<" "<<result<<endl;      }  }