#include <bits/stdc++.h>
using namespace std;
static const auto io_sync_off = []() {
// 关闭同步
ios::sync_with_stdio(false);
// 关闭cin和cout流的绑定
cin.tie(nullptr);
cout.tie(nullptr);
return nullptr;
}();
int getBig(string num){//获取较大的数
char arr[4];
strcpy(arr,num.c_str());
sort(arr,arr+4,greater<char>());
string a(arr);
return stoi(a);
}
int getSmall(string num){//获取较小的数
char arr[4];
strcpy(arr,num.c_str());
sort(arr,arr+4);
string a(arr);
return stoi(a);
}
int main(){
string num;
cin>>num;
stringstream s;
s<<setw(4)<<setfill('0')<<num;
s>>num;
bool flag= true;
while (flag){
int big= getBig(num);
int small= getSmall(num);
int tem=big-small;
if (tem==0||tem==6174){
flag= false;
}
cout<<setw(4)<<setfill('0')<<big<<" - "<<setw(4)<<setfill('0')<<small<<" = "<<setw(4)<<setfill('0')<<big-small<<endl;
stringstream ss;
ss<<setw(4)<<setfill('0')<<tem;
ss>>num;
}
return 0;
}
PTA 1019数字黑洞【C++】
最新推荐文章于 2023-10-18 20:57:04 发布
该C++程序用于计算给定四位数遵循特定规则变化直到达到固定点6174的过程。首先,它将数字排序以得到最大值和最小值,然后计算两者的差值,重复此过程直到差值为0或6174为止。
2093

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



