数字黑洞

题源

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(){ 
    // loop:
    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();
    // goto loop;
    return 0;
}
posted @ 2021-04-26 12:21  summeriver13  阅读(22)  评论(0)    收藏  举报