感觉我的解答比很多题解都好,嘻嘻就是模板的使用
但是需要去做注意一个测试点,如果输出的数字是一个小于1000的数,就是数位小于4,那么就需要自己去使用string的匿名函数去补上前导0
代码如下:
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
int main(){
string str,tmp;cin>>str;
while(1){
int len=str.size();
if(len<4) str=string(4-len,'0')+str;
tmp=str;
sort(str.begin(),str.end());
reverse(str.begin(),str.end());
sort(tmp.begin(),tmp.end());
int MAX=stoi(str),MIN=stoi(tmp);
int n=MAX-MIN;
str=to_string(n);
printf("%04d - %04d = %04d\n",MAX,MIN,n);
if(n==0||n==6174) break;
}
return 0;
}
//太棒了,我写的写法感觉不错啊
//ps:一个狗鸡测试点,如果数字是小于4位数,那么就要自己去添加前导零