欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

pat-1069 The Black Hole of Numbers (20分)

程序员文章站 2022-07-15 23:12:38
...

pat-1069 The Black Hole of Numbers (20分)

感觉我的解答比很多题解都好,嘻嘻就是模板的使用
但是需要去做注意一个测试点,如果输出的数字是一个小于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位数,那么就要自己去添加前导零