标签:
题目的意思是把输入的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; }
标签:
原文地址:http://www.cnblogs.com/zxff/p/5910357.html