我脑子坏了
注意这个补0的问题
#include<iostream>
#include<algorithm>
using namespace std;
string x,y;
int res=0;
int main(){
cin>>x;
while(true){
//这个地方补0 两个:1.对读入的x补0,比如10如果不补0计算那就是0010 -0001 (正确1000 - 0001)
//不能写到外面去,因为x-y的值我存x,万一x-y=10呢?还是要补0
x.insert(0,4-x.length(),'0');
sort(x.begin(),x.end());
y=x;
reverse(x.begin(),x.end());
res=stol(x)-stol(y);
if(res==0){
printf("%04d - %04d = 0000\n",stoi(x),stoi(x));
break;
}
else{
printf("%04d - %04d = %04d\n",stoi(x),stoi(y),res);
x=std::to_string(res);
}
if(res==6174)
break;
}
return 0;
}