题目链接:​​http://acm.hdu.edu.cn/showproblem.php?pid=1032​


这个题目里的<-应该是=

简单题。关键是把题目看懂,题目意思是,给出两个数a,b.求题目给出的计算方式下,[a,b]范围里的最大值。

题目给出的m,n并没说明那个大那个小,应该先判断一下,并且题目也讲清楚了,要求输出的是原来的m,n,

而不是交换之后的m,n。

下面AC代码:


import java.util.Scanner;

public class Main{
private static Scanner scanner;

public static void main(String[] args) {
scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int a = scanner.nextInt();
int b = scanner.nextInt();
int n = a,m = b;
if (n > m) {
int t = m;
m = n;
n = t;
}
int max = 0;
for (int i = n; i <= m; i++) {
int count = 1;
int v = i;
while (v != 1) {
if (v % 2 == 0) {//偶数
v = v / 2;
} else {// 奇数
v = 3 * v + 1;
}
count++;
}
if(max<count){
max = count;
}
}
System.out.println(a+" "+b+" "+max);//最后输出的是没交换的
}
}
}