【PTA】1019 数字黑洞
题目
1019 数字黑洞
思路
注意字符串和整数的转换,先将字符串转为整数再相减,减完再转为字符串作为下一次的输入,以便于排序。stoi()表示把字符串转为整数,头文件为#include < string >。s.insert(0, 4 - s.size(), ‘0’)表示在字符串前面不够四位的补0。
代码
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
bool cmp(char a, char b)
{
return a > b;
}
int main()
{
string s;
cin >> s;
s.insert(0, 4 - s.size(), '0');
do
{
string a = s, b = s;
sort(a.begin(), a.end(), cmp);
sort(b.begin(), b.end());
int cha = stoi(a) - stoi(b);
s = to_string(cha);
s.insert(0, 4 - s.size(), '0');
cout << a << " - " << b << " = " << s << endl;
} while (s != "6174" && s != "0000");
return 0;
}