#include <stdio.h>
void sortNum(int* a, int* b, int* c, int* d);
int main() {
int N, a, b, c, d, max, min, num;
scanf("%d", &N);
while(1) {
a = N / 1000;
b = N % 1000 / 100;
c = N % 100 / 10;
d = N % 10;
if(a == b && b == c && c == d) {
printf("%d%d%d%d - %d%d%d%d = 0000\n", a, a, a, a, a, a, a, a);
break;
}
sortNum(&a, &b, &c, &d);
max = 1000 * a + 100 * b + 10 * c + d;
min = 1000 * d + 100 * c + 10 * b + a;
num = max - min;
printf("%d%d%d%d - %d%d%d%d = ", a, b, c, d, d, c, b, a);
printf("%d%d%d%d\n", num/1000, num%1000/100, num%100/10, num%10);
if(num == 6174) {
break;
}
N = num;
}
return 0;
}
void sortNum(int* a, int* b, int* c, int* d) {
int num[4] = {*a, *b, *c, *d};
int i, j, t;
for(i = 2; i >= 0; i --) {
for(j = 0; j <= i; j ++) {
if(num[j] < num[j + 1]) {
t = num[j];
num[j] = num[j + 1];
num[j + 1] = t;
}
}
}
*a = num[0];
*b = num[1];
*c = num[2];
*d = num[3];
}
PAT1019 数字黑洞
最新推荐文章于 2022-11-06 11:54:50 发布