注意起始为6174 的情况
//
// main.cpp
// PATA1068
//
// Created by Phoenix on 2018/2/16.
// Copyright © 2018年 Phoenix. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int strToNum(int a[]){
int ans = 0;
for(int i = 3; i >= 0; i--) {
ans = ans * 10 + a[i];
}
return ans;
}
int sub(int n) {
int a[4] = {0}, b[4] = {0};
int i = 0;
while(n > 0) {
a[i++] = n % 10;
n /= 10;
}
sort(a, a + 4);
for(int i = 0; i < 4; i++) {
b[i] = a[3 - i];
}
int ans;
int n1, n2;
n1 = strToNum(a);
n2 = strToNum(b);
ans = n1 - n2;
printf("%04d - %04d = %04d\n", n1, n2, ans);
return ans;
}
int main(int argc, const char * argv[]) {
int n;
scanf("%d", &n);
if(n % 1111 == 0) printf("%04d - %04d = 0000\n", n, n);
else if(n == 6174) printf("7641 - 1467 = 6174\n");
else{
while(n != 6174) {
n = sub(n);
}
}
return 0;
}