注意输入不到四位数要补充前导0
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b)
{
return a > b;
}
int main(void)
{
freopen("pat0314/in.txt","r",stdin);
string s;
int a[4];
int left,right;
int res;
cin>>s;
while(s.size() < 4)
{
s = '0' + s;
}
for(int i = 0;i<4;i++)
{
a[i] = s[i] - '0';
}
sort(a,a + 4,cmp);
left = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
sort(a,a + 4);
right = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
// cout<<a[0]<<a[1]<<a[2]<<a[3]<<endl;
res = left - right;
// cout<<left<<" "<<right<<endl;
if(res == 0)
{
printf("%04d - %04d = %04d",left,right,res);
return 0;
}
else
{
while(res != 6174)
{
printf("%04d - %04d = %04d\n",left,right,res);
a[0] = res / 1000;
a[1] = res / 100 % 10;
a[2] = res / 10 % 10;
a[3] = res % 10;
sort(a,a + 4,cmp);
left = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
sort(a,a + 4);
right = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3];
res = left - right;
}
if(res == 6174)
{
printf("%04d - %04d = %04d\n",left,right,res);
return 0;
}
else if(res == 0)
{
printf("%04d - %04d = %04d",left,right,res);
return 0;
}
}
return 0;
}