前言
正文
参考题解
#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;
}