#include<iostream>
#include<string>
#include<sstream>
#include<algorithm>
#include <iomanip>
using namespace std;
/*
简单总结:
1. string stream 需要头文件<sstream>
1) stringstream ss;
2) ss.str() //转换成string类型 可用来初始化string 变量
3) ss<<任意类型变量 // 输入到ss
4) ss>>任意类型变量 //ss输出到
5) ss.clear() //清除状态 常有不同类型时用
6) ss.str("") // 清空ss内容 否则之前的内容还留在里面
2. string和int类型的转换
1) to_string(val) //转化成string
2) int n=stoi(string) //s to i
3) 也可以用stringstream来将其他类型的转化为string类型
3. include<iomanip>
1) setw(n) //控制输出位数
2) setfill('') // 填充字符变量或常量 和setw常一起连用
4. 原来string也能sort
*/
bool decrease(char a, char b) {
return a > b;
}
int main() {
int n;
int n1, n2;
cin >> n;
stringstream ss;
do {
ss.str("");
ss << setw(4) << setfill('0') << n;
string s1 = ss.str();
string s2 = ss.str();
sort(s1.begin(), s1.end(), decrease);
sort(s2.begin(), s2.end());
n1 = stoi(s1);
n2 = stoi(s2);
string s3 = to_string(n1);
if (n1 == n2) {
printf("%d - %d = 0000",n1,n2);
return 0;
}
printf("%04d - %04d = %04d", n1, n2, n1 - n2);
n = n1 - n2;
if (n != 6174)printf("\n");
} while (n != 6174);
system("pause");
return 0;
}