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);
		}
	}
}



注意事项:


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

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

 

0.0分

3 人评分

  评论区

能不能帮我看下为什么改成这样就过不了了?
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;
2019-03-22 19:50:21
  • «
  • 1
  • »