数学黑洞6174的代码实现
1 public static void main(String[] args) { 2 System.out.println("经过"+yanZheng(-8888)+"次"); 3 } 4 public static int yanZheng(int num){ 5 int count = 0; 6 int[] a = new int[4]; 7 int max = 0; 8 int min = 0; 9 //验证位数 10 if(num/1000 == 0 || num/1000>9) { 11 System.out.println("错误:输入了一个"+(num+"").length()+"位数"); 12 System.out.println("请输入一个4位数"); 13 return 0; 14 } 15 //验证位数数字是否全部相等 16 for(int i=0;i<4;i++) { 17 if(num%10 == num/10%10 && num%10 == num/100%10 && num%10 == num/1000) { 18 System.out.println("各位数相等,不符合条件"); 19 return 0; 20 } 21 } 22 do { 23 for(int i=0;i<a.length;i++) { 24 a[i] = num%10; 25 num = num/10; 26 } 27 Arrays.sort(a); 28 max = a[0]+a[1]*10+a[2]*100+a[3]*1000; 29 min = a[0]*1000+a[1]*100+a[2]*10+a[3]; 30 count++; 31 System.out.println(max+"-"+min+"="+(max-min)); 32 num = max-min; 33 }while(num!=6174); 34 return count; 35 }