题解 | #提取不重复的整数#

思路:
(1)依次提取出个位,十位,百位,千位,……(余数矩阵)
(2)构造比较器矩阵[1,2,3,4,5,6,7,8,9]
(3)从前向后扫掠余数矩阵,若余数矩阵元素等于任一比较器矩阵元素,输出该余数,并令该比较器元素为-1(不是1,2,……,9就可以)。
         继续扫掠余数矩阵,若余数矩阵元素等于任一比较器矩阵(上一步形成的新矩阵)元素,输出该余数,并令该比较器元素为-1(不是1,2,……,9就可以)。
         ……
程序:
#include<stdio.h>
int main()
{
    int x=0,shang[10]={0},yushu[10]={0},bijiaoqi[9]={1,2,3,4,5,6,7,8,9},i,j,k,num=1;
    scanf("%d",&x);
    //构造余数矩阵:个位,十位,百位,千位,……
    shang[0]=x;
    yushu[0]=shang[0]%10;//个位
    for(i=1;i<10;i++)
    {
        shang[i]=shang[i-1]/10;
        yushu[i]=shang[i]%10;//个位,十位,百位,……
        if (shang[i]>0)
            num++;//总位数=num
        else if(shang[i]<=0)
            break;
    }
    //从前向后扫掠,若余数矩阵中元素等于比较器矩阵中任一元素,输出该余数,并使该比较器元素为-1。继续扫掠余数矩阵
    for(j=0;j<num;j++)
    {
        for(k=0;k<9;k++)
        {
            if(yushu[j]==bijiaoqi[k])
            {
                printf("%d",yushu[j]);
                bijiaoqi[k]=-1;//不是1,2,3,4,5,6,7,8,9就行
                break;
            }
        }
    }
}
全部评论

相关推荐

10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务