这道题目看起来简单,实际做起来。。。更简单。
这道题目直接穷举就做出来了。
不需要技巧~
暴力搜索最大的:
下面贴上代码:
//
// main.cpp
// hdu_1032
//
// Created by Alps on 15/1/1.
// Copyright (c) 2015年 chen. All rights reserved.
//
//http://acm.hdu.edu.cn/showproblem.php?pid=1032
#include <iostream>
using namespace std;
int getNum(long long a){
int num = 1;
while (a != 1) {
if (a & 1) {
a = a*3+1;
}else{
a = a/2;
}
num++;
}
return num;
}
int main(int argc, const char * argv[]) {
int a,b;
int curnum;
int max = 1;
while (scanf("%d %d",&a,&b) != EOF) {
max = 0;
int ta = a, tb = b;
if (a > b) {
ta = b;
tb = a;
}
for (int i = ta; i <= tb; i++) {
curnum = getNum(i);
max = max > curnum ? max:curnum;
}
printf("%d %d %d\n",a,b,max);
}
return 0;
}