题目:给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。
import java.util.Arrays;
import java.util.Scanner;
public class HeiDong {
public static void main(String[] args) {
int num=input();
yanzheng(num);
}
public static int yanzheng(int num){
int [] arr=new int [4];
int maxNum=0; //用来存储数字重新排序后的最大四位数
int minNum=0; //用来存储数字重新排序后的最小四位数
do{
for(int i=0;i<arr.length;i++){
arr[i]=num%10;
num/=10;
}
Arrays.sort(arr);
maxNum=arr[0]+arr[1]*10+arr[2]*100+arr[3]*1000;
minNum=arr[0]*1000+arr[1]*100+arr[2]*10+arr[3];
System.out.println(maxNum+"-"+minNum+"="+(maxNum-minNum));
num=maxNum-minNum;
}while(num!=6174);
return 0;
}
public static int input(){
Scanner sc=new Scanner(System.in);
int number=sc.nextInt();
if(number>999&&number<10000){
return number;
}else{
return input();
}
}
}