黑洞数(陷阱数)
计算过程,给定一个数字,从大到小排列后减去从小到大排列,经过若干次运算后终得到一个固定的整数,三位数的黑洞495,四位数的黑洞6174等等。
public class HeiDong2 {
// 计算4位数,从大到小-从小到大,得到一个固定的数
public static void main(String[] args) {
int x = 0;
try (Scanner sc = new Scanner(System.in)) {
System.out.print("Input a 4 number:");
x = sc.nextInt();
} catch (Exception e) {
return;
}
int count = 0;
int aa[] = new int[4];
while (x != 6174) {
// 数字的各十百千依次拿出
aa[0] = x % 10;
aa[1] = (x / 10) % 10;
aa[2] = (x / 100) % 10;
aa[3] = x / 1000;
for (int i = 0; i < aa.length - 1; i++) { //冒泡排序
for (int j = 0; j < aa.length - 1 - i; j++) {
if (aa[j] > aa[j + 1]) {
int temp = aa[j];
aa[j] = aa[j + 1];
aa[j + 1] = temp;
}
}
}
// 正着排列数字和反着排列数字
int fan = aa[0] * 1000 + aa[1] * 100 + aa[2] * 10 + aa[3];
int zheng = aa[3] * 1000 + aa[2] * 100 + aa[1] * 10 + aa[0];
x = zheng - fan;
count++;
// 循环7次后跳出
if (x == 0 || count > 7) {
break;
}
System.out.println(count + ":" + zheng + "-" + fan + "=" + x);
}
}
}