输入样例 1:
6767
输出样例 1:
7766 - 6677 = 1089
9810 - 0189 = 9621
9621 - 1269 = 8352
8532 - 2358 = 6174
输入样例 2:
2222
输出样例 2:
2222 - 2222 = 0000
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] arrNum = new int[4];
arrNum[0] = num% 10;
arrNum[1] = num/ 10 % 10;
arrNum[2] = num/ 100 % 10;
arrNum[3]= num/ 1000;
int ans=0;
if(diZeng(arrNum)==dijian(arrNum)) {
System.out.println(num+" - "+num+" = "+"0000");
return;
}
while(ans!=6174) {
int z =diZeng(arrNum);
int j =dijian(arrNum);
System.out.print(String.format("%04d",j));
System.out.print(" - ");
System.out.print(String.format("%04d",z));
System.out.print(" = ");
ans = j-z;
System.out.print(String.format("%04d",ans));
System.out.println();
arrNum[0] = ans% 10;
arrNum[1] = ans/ 10 % 10;
arrNum[2] = ans/ 100 % 10;
arrNum[3]= ans/ 1000;
}
}
private static int dijian(int[] arrNum) {
int[] copyNum=new int[4];
int cnt=0;
for (int i = arrNum.length-1; i >=0; i--) {
copyNum[cnt]=arrNum[i];
cnt++;
}
String re = "";
for (int i = 0; i < copyNum.length; i++) {
re+=copyNum[i]+"";
}
return Integer.parseInt(re);
}
private static int diZeng(int[] arrNum) {
Arrays.sort(arrNum);
String re = "";
for (int i = 0; i < arrNum.length; i++) {
re+=arrNum[i]+"";
}
return Integer.parseInt(re);
}
}