CODE:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int num[4];
int f[4];
int cmp1(int a,int b)
{
return a<b;
}
int cmp2(int a,int b)
{
return a>b;
}
int main()
{
int n,i;
while(scanf("%d",&n)==1)
{
memset(num,0,sizeof(num));
int pos=0;
int nn=n;
while(n>0)
{
int r=n%10;
num[pos++]=r;
n=n/10;
}
if(num[0]==num[1]&&num[1]==num[2]&&num[2]==num[3])
{
for(i=3;i>=0;i--)
printf("%d",num[i]);
printf(" - ");
for(i=3;i>=0;i--)
printf("%d",num[i]);
printf(" = ");
printf("0000\n");
continue;
}
sort(num,num+4,cmp1);
while(num[0]!=4||num[1]!=7||num[2]!=1||num[3]!=6)
{
sort(num,num+4,cmp1);
for(i=3;i>=0;i--)
printf("%d",num[i]);
for(i=0;i<4;i++)
f[i]=num[i];
printf(" - ");
sort(num,num+4,cmp2);
for(i=3;i>=0;i--)
printf("%d",num[i]);
printf(" = ");
int t=0;
for(i=0;i<4;i++)
{
if(f[i]>=num[i]+t)
{
num[i]=f[i]-num[i]-t;
t=0;
}
else
{
num[i]=f[i]+10-num[i]-t;
t=1;
}
}
for(i=3;i>=0;i--)
printf("%d",num[i]);
printf("\n");
}
}
return 0;
}