题源
PTA 乙级
题解
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
bool cmp(int a,int b){return a>b;}
int num[4];
int big = 0,small = 0,t;
int main(){
scanf("%d",&t);
num[0]=t/1000;num[1]=t/100%10;num[2]=t/10%10;num[3]=t%10;
for(;;big = 0,small = 0){
sort(num,num+4,cmp);
big = num[0];
for(int i = 1;i < 4;i++)big = big*10+num[i];
sort(num,num+4);
small = num[0];
for(int i = 1;i < 4;i++)small = small*10+num[i];
printf("%04d - %04d = %04d\n",big,small,big-small);
t = big - small;
if(t == 0||t == 6174)break;
num[0]=t/1000;num[1]=t/100%10;num[2]=t/10%10;num[3]=t%10;
}
getchar();getchar();
return 0;
}