1. 程式人生 > >【PAT】B1019 數字黑洞 (20)(20 分)

【PAT】B1019 數字黑洞 (20)(20 分)

names space arr urn res pre () amp int

#include<stdio.h>
#include<algorithm>
using namespace std;
bool cmp(int a,int b){
    return a>=b;
}
bool cmp1(int a,int b){
    return a<=b;
}
void toarr(int num,int *arr){
    for(int i=0;i<4;i++){
        arr[i]=num%10;
        num/=10;
    }
}
int tonum(int *arr){
    int res=0;
    for(int i=0;i<4;i++){
        res=res*10+arr[i];
    }
    return res;
}
int main(){
    int num,arr[5];
    scanf("%d",&num);
    while(1){
        toarr(num,arr);
        sort(arr,arr+4,cmp);
        int num1=tonum(arr);
        sort(arr,arr+4,cmp1);
        int num2=tonum(arr);
        num=num1-num2;
        printf("%04d - %04d = %04d",num1,num2,num);
        if(num!=0&&num!=6174)printf("\n");
        else break;
    }
    return  0;
}

【PAT】B1019 數字黑洞 (20)(20 分)