import java.util.Scanner;

public class Main {
	public static int zc(int n){
		int s=1;
		while(n!=1){
			if(n%2==0){
				n/=2;
				s++;
			}else{
				n=n*3+1;
				s++;
			}
		}
		return s;
	}
	public static void main(String[] args) {
		Scanner cin=new Scanner(System.in);
		while(cin.hasNext()){
			int a=cin.nextInt();
			int b=cin.nextInt();
			int maxZc=0,maxLength=0;
			int c=a,d=b;
			if(c>d) {int t=c;c=d;d=t;}
			for(int i=c;i<=d;i++){
				if(zc(i)>maxZc) {maxZc=zc(i);maxLength=i;}
			}
			System.out.println(a+" "+b+" "+maxZc);
		}
	}
}



注意事项:


注意前一个数不一定后一个数字

输出的时候要和输入的顺序保持一致

点赞(4)
 

0.0分

3 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

大西红柿 5年前 回复TA
能不能帮我看下为什么改成这样就过不了了?
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner cin=new Scanner(System.in);
        while(cin.hasNext()){
            int c=cin.nextInt();
            int d=cin.nextInt();
            int maxZc=0;
            if(c>d) {int t=c;c=d;d=t;}
            for(int i=c;i<=d;i++){
            	int n=i;
                int s=1;
                while(n!=1){
                    if(n%2==0){
                        n/=2;
                        s++;
                    }else{
                        n=n*3+1;