您的位置:首页 > 其它

uva_100 - The 3n + 1 problem

2012-10-30 21:35 288 查看
/**这道题有一个陷阱,那就是输入的闭区间不一定是a<=b,可能a>b,而且输出时的闭区间顺序要和输入的顺序一样*/
#include <cstdio>
#include <algorithm>

using namespace std;

int fun(int n) {
int num(1);
while(n>1) {
num++;
if(n%2!=0) {
n = 3*n+1;
continue;
}
n /= 2;
}
return num;
}

int main() {
int a, b;
int maxn;
while(~scanf("%d %d",&a,&b)) {
maxn = 0;
int a1=a,b1=b;
if(a>b) swap(a,b);
for(int i=a; i<=b; i++)
maxn = max(maxn, fun(i));
printf("%d %d %d\n",a1,b1,maxn);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: