原题描述
思路分析
- 为方便排序,以
string类型作为读入。因为要做减法,所以还得转换为int型整数,我用的cb显示无法识别to_string函数和stoi函数…但是pat提交是可以的。- 因为要补齐位数,所以无论输入的是几位数,都要在高位添
0以满足于四位数减法。用string类型下的insert函数可以实现。2.1 其实不一定补在高位,因为反正还会排序!所以补的0会自动到高位去啦!!!
代码部分
#include<bits/stdc++.h>
using namespace std;
bool cmp(char a, char b)
{
return a>b;
}
int main()
{
ios::sync_with_stdio(0);
string N, m, n;
cin >> N;
//²¹ÆëËÄλÊý
N.insert(0, 4-N.length(), '0');
do
{
m = N; n = N;
sort(m.begin(), m.end(), cmp);
sort(n.begin(), n.end());
int result = stoi(m) - stoi(n);
N = to_string(result);
N.insert(0, 4-N.length(), '0');
cout << m << " " << "-" << " " << n << " " <<"=" << " " << N << endl;
}while(N != "6174" && N != "0000");
return 0;
}
被这两个函数搞死了。
本文深入探讨了6174猜想的算法实现,使用C++编程语言通过字符串操作和排序技巧来验证该数学猜想。从输入任意四位数开始,通过不断迭代计算直至达到固定点6174或0000,详细展示了每一步的计算过程。
&spm=1001.2101.3001.5002&articleId=88091012&d=1&t=3&u=c97e832124fc42b199daeebefe580735)
213

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



