【PTA】1019 数字黑洞

题目

1019 数字黑洞

思路

注意字符串和整数的转换,先将字符串转为整数再相减,减完再转为字符串作为下一次的输入,以便于排序。stoi()表示把字符串转为整数,头文件为#include < string >。s.insert(0, 4 - s.size(), ‘0’)表示在字符串前面不够四位的补0。

代码

#include
#include
#include
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;
}

你可能感兴趣的:(算法)