J.H


私信TA

用户名:dotcpp0649969

访问量:5189

签 名:

等  级
排  名 80
经  验 9561
参赛次数 1
文章发表 135
年  龄 0
在职情况 学生
学  校 桂林理工大学
专  业 计算机科学与技术

  自我简介:

TA的其他文章

解题思路:

注意事项:

参考代码:

#include<stdio.h>

#include<stdlib.h>

int compare(void const* a,void const* b)

{

    int num_a = *(int *)a;

    int num_b = *(int*)b;

    if (num_a > num_b)

        return -1;

    else if (num_a < num_b)

        return 1;

    else

        return 0;

}

int rely(int x, int y)

{

    int i=0, j=0, a[10], b[10],m,n;

    while (x > 0)

    {

        a[i] = x % 10;

        i++;

        x /= 10;

    }

    while (y > 0)

    {

        b[j] = y % 10;

        j++;

        y /= 10;

    }

    if (i != j)

        return 0;

    for (m = 0; m < i; m++)

        for (n = 0; n < j; n++)

        {

            if (a[m] == b[n])

            {

                a[m] = 0;

                b[n] = 0;

            }

        }

    for (m = 0; m < i; m++)

    {

        for (n = 0; n < j; n++)

        {

            if (a[m] == 0 && b[n] == 0)

                continue;

            else

                return 0;

        }

    }

    return 1;

}

int main()

{

    int a[1000], i, j, n;

    while (scanf("%d", &n) == 1 && n != 0)

    {

        for (i = 0; i < n; i++)

            scanf("%d", &a[i]);

        for (i = 0; i < n - 1; i++)

        {

            int flag = 0;

            for (j = i + 1; j < n; j++)

            {

                if (rely(a[i], a[j]))

                {

                    a[j] = 0;

                    flag = 1;

                }

            }

            if (flag)

                a[i] = 0;

        }

        qsort(a, n, sizeof(int), compare);

        int sum = 0;

        for (i = n-1; i>=0; i--)

        {

            if (a[i])

            {

                printf("%d ", a[i]);

            }

            else

                sum++;

        }

        if (sum == n)

            printf("None");

        printf("\n");

    }

    return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »