#include<cstdio>
#include<algorithm>
int n;
char str[5];
//将数字转换为字符串存储方便对各位数字排序
void convertTostr(int n){//将数字转换为字符串
for(int i=3;i>=0;i--){
str[i]=n%10+'0';
n/=10;
}
}
int convertTonum(char a[]){//将字符串转换为数字
int res;
res=(a[3]-'0')+(a[2]-'0')*10+(a[1]-'0')*100+(a[0]-'0')*1000;
return res;
}
bool cmpNoIncreasing(char a,char b){//非递增排序
return a>b;
}
bool cmpNoDecreasing(char a,char b){//非递减排序
return a<b;
}
using namespace std;
int main(){
scanf("%d",&n);//输入待处理的数
do{
convertTostr(n);//转换为字符串
sort(str,str+4,cmpNoIncreasing);//将各位数字非递增排序
int a=convertTonum(str);//得到各位非递增排序后的数
sort(str,str+4,cmpNoDecreasing);//将各位数字非递减排序
int b=convertTonum(str);//得到各位非递减排序后的数
n=a-b;
if(n==0) {//相减后为0,可以结束循环
printf("%04d - %04d = %04d\n",a,b,n);
break;
}//否则输出计算过程
else printf("%04d - %04d = %04d\n",a,b,n);
}while(n!=6174);//直到出现6174才停止
return 0;
}
09-06
09-06
09-06
09-06