PAT1069

#include <stdio.h>
#include <algorithm>
using namespace std;


bool cmp(int a, int b)
{
return a > b;
}


int main()
{
int i;
int sum1, sum2, pre, sum, cnt;
int str1[5], str2[5];


pre = -1;


scanf("%d", &sum);


cnt = 1000;


for(i = 0; i < 4; i++)
{
str1[i] = sum / cnt;
str2[i] = str1[i];
sum = sum % cnt;
cnt = cnt / 10;
}


while(1)
{
sort(str1, str1 + 4, cmp);


for(i = 0, sum1 = 0; i < 4; i++)
sum1 = sum1 * 10 + str1[i];


sort(str2, str2 + 4);


for(i = 0, sum2 = 0; i < 4; i++)
sum2 = sum2 * 10 + str2[i];


sum = sum1 - sum2;


if(sum == pre) break;


printf("%04d - %04d = %04d\n", sum1, sum2, sum);


pre = sum;


cnt = 1000;


for(i = 0; i < 4; i++)
{
str1[i] = sum / cnt;
str2[i] = str1[i];
sum = sum % cnt;
cnt = cnt / 10;
}
}
return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_32631151/article/details/79306247