其他分享
首页 > 其他分享> > 【PAT (Basic Level) Practice】——【简单数学】1019 数字黑洞

【PAT (Basic Level) Practice】——【简单数学】1019 数字黑洞

作者:互联网

文章目录

一【题目难度】

二【题目编号】

三【题目描述】

四【题目示例】

五【解题思路】

六【最终得分】

七【代码实现】

#include<stdio.h>
#include<stdlib.h> 

void to_array(int num[],int n)
{
    for(int i = 3;i>=0;i--)
    {
        num[i] = n % 10;
        n /= 10;
    }
}

int to_number(int num[])
{
    int res = 0;
    for(int i = 0;i<4;i++)
    {
        res = res * 10 + num[i];
    }
    return res;
}

int cmp_fromSToB_1019_DigitalBlackHole(const void *a,const void *b)
{
    return *(int *)a > *(int *)b ? 1 : -1;
}

int cmp_fromBToS_1019_DigitalBlackHole(const void *a,const void *b)
{
    return *(int *)a < *(int *)b ? 1 : -1;
}

int main()
{
    int num[4],n;
    scanf("%d",&n);
    while(1)
    {
        to_array(num,n);
        qsort(num,4,sizeof(int),cmp_fromBToS_1019_DigitalBlackHole);
        int max = to_number(num);
        qsort(num,4,sizeof(int),cmp_fromSToB_1019_DigitalBlackHole);
        int min = to_number(num);
        n = max - min;
        printf("%04d - %04d = %04d\n",max,min,n);
        if(n == 0 || n == 6174)
        {
            break;
        }
    }
    return 0;
}

八【提交结果】

在这里插入图片描述

标签:PAT,数字,Level,int,num,1019,Basic,题目,6174
来源: https://blog.csdn.net/IronmanJay/article/details/122662368