问题描述
黑洞数又称为陷阱数,是类具有奇特转换特性的整数。任何一个数字不全相同的整数,经有限“重排求差”操作,总会得到某一个或一些数,这些数即为黑洞数。“重排求差”操作即把组成该数的数字重排后得到的最大数减去重拍后的最小数。
package Code1;
import java.util.Arrays;
public class Code2_5黑洞数 {
public static void main(String[] args) {
for(int input=1000;input<=9999;input++){
System.out.println("\n"+input+"验证如下:");
if(input%1111==0){
System.out.println("数字全部相同!");
continue;
}else{
int flag=0;
int input2=input;
do{
input2=he(fen(input2));
flag++;
}while(input2!=6174);
if(input2==6174){
System.out.println("计算了"+flag+"次,"+"命题为真!");
}else{
System.out.println("命题为假!");
}
}
}
System.out.print("程序结束!");
}
public static int[] fen(int input){
int a[]=new int[4];
a[0]=input/1000;
input=input%1000;
a[1]=input/100;
input=input%100;
a[2]=input/10;
input=input%10;
a[3]=input;
Arrays.sort(a);
return a;
}
public static int he(int a[]){
Arrays.sort(a);
int max=a[3]*1000+a[2]*100+a[1]*10+a[0];
int min=a[0]*1000+a[1]*100+a[2]*10+a[3];
System.out.println(max+"-"+min+"="+(max-min));
return max-min;
}
}