#include<stdio.h>
#include<algorithm>
using namespace std;
int maxx,minn;
void process(int a)
{
int s[5];
s[0] = a/1000;
s[1] = a/100%10;
s[2] = a%100/10;
s[3] = a%10;
sort(s,s+4);
maxx = s[3]*1000 + s[2]*100 + s[1]*10 + s[0];
minn = s[0]*1000 + s[1]*100 + s[2]*10 + s[3];
}
int main()
{
int a;
scanf("%d",&a);
process(a);
if(a/1000 == a/100%10 && a/100%10 == a%100/10 && a%100/10 == a%10)
printf("%04d - %04d = 0000\n",a,a);
else
{
do
{
process(a);
int out = maxx - minn;
printf("%04d - %04d = %04d\n",maxx,minn,out);
a = out;
}while(a != 6174);
}
return 0;
#include<algorithm>
using namespace std;
int maxx,minn;
void process(int a)
{
int s[5];
s[0] = a/1000;
s[1] = a/100%10;
s[2] = a%100/10;
s[3] = a%10;
sort(s,s+4);
maxx = s[3]*1000 + s[2]*100 + s[1]*10 + s[0];
minn = s[0]*1000 + s[1]*100 + s[2]*10 + s[3];
}
int main()
{
int a;
scanf("%d",&a);
process(a);
if(a/1000 == a/100%10 && a/100%10 == a%100/10 && a%100/10 == a%10)
printf("%04d - %04d = 0000\n",a,a);
else
{
do
{
process(a);
int out = maxx - minn;
printf("%04d - %04d = %04d\n",maxx,minn,out);
a = out;
}while(a != 6174);
}
return 0;
}
进行数字运算的时候 ,最好还是使用整形的数组,这样会比较方便而且不易出错。将整数单位存入数组的方法要熟练。