前言

传送门

正文


参考题解

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
/* 题意:数字黑洞,要求给定一个四位数的整数N,输出该整数到达数字黑洞6174的 每一步计算过程,若该四位数的整数每一位都相同,则直接输出N-N=0000 ,这里可以 想到若res为0,那么反推n的每一位都是相同的数 思路:主要就是考察整型数与数组之间转换 */
int n,num[5];
bool cmp(int a,int b){
	return a>b;
}
//基本模板 
void intToArr(int n){
	int i=0; 
	do{//注意是逆序存储的 
		num[i++]=n%10;
		n/=10;
	}while(n!=0);
} 
int arrToInt(){
	int res=0;
	for(int i=0;i<4;i++){
		res=res*10+num[i]; 
	} 
	return res;
}
int main(){
	cin>>n;
	int a,b;
	while(n){
		intToArr(n);
		sort(num,num+4);
		a=arrToInt();
		sort(num,num+4,cmp);
		b=arrToInt();
		n=b-a;
		printf("%04d - %04d = %04d\n",b,a,n);
		if(n==6174)break;
	}
	return 0;
}