奇偶归一猜想,得到一个数,若为偶数则除以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; } } }
总结:简单的递归应用。