题解
string的成员函数insert有以下多种重载:
string &insert(int p0, const char *s);——在p0位置插入字符串s
string &insert(int p0, const char *s, int n);——在p0位置插入字符串s的前n个字符
string &insert(int p0,const string &s);——在p0位置插入字符串s
string &insert(int p0,const string &s, int pos, int n);——在p0位置插入字符串s从pos开始的连续n个字符
string &insert(int p0, int n, char c);——在p0处插入n个字符c
iterator insert(iterator it, char c);——在it处插入字符c,返回插入后迭代器的位置
void insert(iterator it, const_iterator first, const_iteratorlast);——在it处插入从first开始至last-1的所有字符
void insert(iterator it, int n, char c);——在it处插入n个字符c
#include<iostream>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
int main() {
string a, b, t;
cin >> t;
t.insert(0, 4 - t.length(), '0');
do {
b = a = t;
sort(a.begin(), a.end());
sort(b.begin(), b.end(), greater<char>());
int result = stoi(b) - stoi(a);
t = to_string(result);
t.insert(0, 4 - t.length(), '0');
cout << b << " - " << a << " = " << t << endl;
} while(t != "0000" && t != "6174");
return 0;
}