#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b;//从大到小排序
}
void f(unsigned short n,unsigned short* num)//指针可以控制实参
{
unsigned short num1[4];
unsigned short maxnum , minnum ;//最大数和最小数
for (int i = 0; i < 4; i++)
{
num1[i] = n % 10;
n /= 10;
/*
把每个数都取出来,放到数组num1中
*/
}
sort(num1,num1+4,cmp);//把每位从大到小排序
maxnum = num1[0]*1000+num1[1]*100+num1[2]*10+num1[3];//赋值最大数-正赋
minnum = num1[3]*1000+num1[2]*100+num1[1]*10+num1[0];//赋值最小数-反赋
cout<<maxnum<<"-"<<minnum<<"="<<maxnum-minnum<<endl;//输出最大数减最小数
*num = maxnum-minnum;//可以直接控制实参
}
int main ()
{
unsigned short n , n1 = 0;
cin>>n;
if(n%1111==0){//判断四位是否相同
cout<<"无法解决";
return 0;
}else if(n>9999||n<1000){//判断是否为四位数
cout<<"输入错误";
return 0;
}else if(n==6174){//判断是否为6174
cout<<"已是6174!";
return 0;
}else{
while (n1!=6174){//循环直到n1为6174——如果为6174则完成
f(n,&n1);//进入函数
n = n1;//将n1赋值给n
}
}
return 0;
}