我的代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
bool cmp(int a, int b)
{
return a > b;
}
int main()
{
int a, res[10];
cin >> a;
if (a == 6174) printf("7641 - 1467 = 6174\n");
int z = a;
int j = 0;
while (z)
{
res[j ++ ] = z % 10;
z /= 10;
}
bool flag = false;
for (int n = 0; n < j; n ++ )
if (res[n] != res[0])
{
flag = true;
break;
}
memset(res, 0, sizeof res);
if (!flag) printf("%d - %d = 0000", a, a);
else
{
while (a != 6174)
{
int i = 0, x, y;
while (a)
{
res[i ++ ] = a % 10;
a /= 10;
}
sort(res, res + 4, cmp);
x = res[0] * 1000 + res[1] * 100 + res[2] * 10 + res[3];
y = res[3] * 1000 + res[2] * 100 + res[1] * 10 + res[0];
a = x - y;
printf("%04d - %04d = %04d\n", x, y, a);
memset(res, 0, sizeof res);
}
}
return 0;
}