奇偶归一猜想--递归思想

奇偶归一猜想,得到一个数,若为偶数则除以2,若为奇数则*3+1他们的最终结果都是1,步骤中最大的数是多少?
public class Main {  
	static int max=-999999999;
    static int even(int num) {
    	 if(num==1) {
    		   return max;    
    		 	}else { 
			num=num/2;
    			 if(max<num) {max=num;}//奇数相应操作在记录其值
    				if(num%2==0) {
    					return even(num);
    				}else {  
    					return odd(num);
    				}
    				}
    }    
 static int odd(int num) {
	 if(num==1) {
   return max;
 	}else { num=num*3+1;
	 if(max<num) {max=num;}//奇数相应操作在记录其值
		if(num%2==0) {
			return even(num);
		}else {  
			return odd(num);
		}
		}
	
    }
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		int num;
		while(true) {  
			num=scanner.nextInt();
			max=num;
			if(num%2==0) {
				System.out.println(even(num));
			}else {
				System.out.println(odd(num));
			}
			max=-9999999;
		}
	}


}

总结:简单的递归应用。

猜你喜欢

转载自blog.csdn.net/qq_36328915/article/details/79316049