题目:https://www.patest.cn/contests/pat-a-practise/1069
代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
void num_to_array(int num,int n[]){
for(int i=0;i<4;i++){
n[i]=num%10;
num=num/10;
}
}
int array_to_num(int n[]){
int ans=0;
for(int i=0;i<4;i++){
ans=ans*10+n[i];
}
return ans;
}
int main()
{
int num,max,min;
int n[5];
scanf("%d",&num);
if(num%1111==0){
printf("%04d - %04d = 0000\n",num,num);
}else{
while(1){
num_to_array(num,n);
sort(n,n+4);
min=array_to_num(n);
sort(n,n+4,cmp);
max=array_to_num(n);
num=max-min;
printf("%04d - %04d = %04d\n",max,min,num);
if(num==6174) break;
}
}
system("pause");
}