测试点找了半小时全给你找齐了,拿了留个评论😄。
测试点:
测试点2: 1000。每次运算都要补0因为1000 - 0001 = 0999,如果不补0就会出错(我就是卡在这)。
其他测试点:有可能是小于1000的数, 1。 测试点5:输入的就是6174。
#include <bits/stdc++.h>
using namespace std;
bool cmp (char a, char b) {
return a > b;
}
int main() {
int flag = 1;
string s, s1;
cin >> s;
s.insert(0, 4 - s.length(), '0');
do {
sort(s.begin(), s.end(), cmp);
s1 = s;
reverse(s1.begin(), s1.end());
int a = stoi(s);
int b = stoi(s1);
string ans = to_string (a - b);
ans.insert(0, 4 - ans.length(), '0');
cout << s << " - " << s1 << " = " << ans << endl;
s = ans;
}while (s != "6174" && s != "0000");
}
本文详细探讨了一个编程问题,涉及将字符串转换为整数并进行减法操作时遇到的溢出问题。作者分享了如何通过在1000测试点上发现并修复bug,以及如何确保正确处理小于1000的数和特定输入6174。重点在于代码调整和优化策略。
1312

被折叠的 条评论
为什么被折叠?



