![这里写图片描述](https://img-blog.csdn.net/20160803102945093)
![这里写图片描述](https://img-blog.csdn.net/20160803103012311)
JavaCode
import java.util.Scanner;
public class NumberHole {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String numStr = scan.next();
scan.close();
solve(numStr);
}
static void solve(String numStr) {
while(numStr.length() < 4)
numStr = "0" + numStr;
do{
String bigger = sortDec(numStr);
String lesser = sortAse(bigger);
if(bigger.equals(lesser)){
System.out.println(bigger + " - " + lesser + " = 0000");
return;
}
numStr = diff(bigger,lesser);
System.out.println(bigger + " - " + lesser + " = " + numStr);
}while(!"6174".equals(numStr));
}
static String sortDec(String numStr) {
char[] str = numStr.toCharArray();
for(int i = str.length-1; i >0; --i)
for(int j=0; j< i; ++j) {
if(str[j] < str[j+1]) swap(str, j,j+1);
}
return new String(str);
}
static String sortAse(String bigger) {
return new StringBuffer(bigger).reverse().toString();
}
static void swap(char[] str, int i, int j) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
}
static String diff(String bigger, String lesser) {
String resStr = String.valueOf(Integer.parseInt(bigger) - Integer.parseInt(lesser));
while(resStr.length() < 4)
resStr = "0" + resStr;
return resStr;
}
}