题解 | #判断两个IP是否属于同一子网#

判断两个IP是否属于同一子网

https://www.nowcoder.com/practice/34a597ee15eb4fa2b956f4c595f03218

#include <stdio.h>
int ipvaild(int ip[])
{
    for(int i = 0;i<4;i++)
    {
        if(ip[i]<0 || ip[i]>255)
        {
            return 0;
        }
    }
    return 1;
}

void otob(int ziwa,int a[])
{
    int index = 7;
    while(ziwa!=0)
    {
        a[index--] = ziwa%2;
        ziwa/=2;
    }
}
int ziwavaild(int ziwa[])
{
    int a[4][8] = {0};
    int flagz = 0;
    for(int i = 0;i<4;i++)
    {
        
        if(ziwa[i]<0 || ziwa[i]>255)
        {
            return 0;
        }

        otob(ziwa[i], a[i]);
    }

    for(int i = 0;i<4;i++)
    {
        for(int j = 0;j<8;j++)
        {
            if(a[i][j] == 0)
            {
                flagz = 1;
            }
            if(flagz)
            {
                if(a[i][j]==1)
                {
                    return 0;
                }
            }
        }
    }

    return 1;
}


int main() {
    int ziwa[4] = {0};
    int ip1[4] = {0},ip2[4] = {0};

    /*int a = 128;
    int l[8] = {0};
    otob(a, l);
    for(int i = 0;i<8;i++)
    {
        printf("%d",l[i]);
    }*/

    while (~scanf("%d.%d.%d.%d",&ziwa[0],&ziwa[1],&ziwa[2],&ziwa[3])) {
        scanf("%d.%d.%d.%d",&ip1[0],&ip1[1],&ip1[2],&ip1[3]);
        scanf("%d.%d.%d.%d",&ip2[0],&ip2[1],&ip2[2],&ip2[3]);
        //int res[8] = {0};
        
        if(ipvaild(ip1) && ipvaild(ip2) && ziwavaild(ziwa))
        {
            int flag = 1;
            for(int i = 0;i<4;i++)
            {
                if((ip1[i]&ziwa[i]) != (ip2[i]&ziwa[i]))
                {
                    flag = 0;
                    break;
                }
            }
            if(flag)
            {
                printf("0\n");
            }else {
                printf("2\n");
            }
        }else {
        printf("1\n");
        }
      
    
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# AI面会问哪些问题? #
24273次浏览 477人参与
# 中国电信笔试 #
30906次浏览 283人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
13963次浏览 208人参与
# 你的实习产出是真实的还是包装的? #
18506次浏览 329人参与
# 如果秋招能重来,我会____ #
96446次浏览 499人参与
# 春招至今,你的战绩如何? #
59052次浏览 535人参与
# 厦门银行科技岗值不值得投 #
7393次浏览 185人参与
# i人适合做什么工作 #
36645次浏览 123人参与
# 我是面试官,请用一句话让我破防 #
79291次浏览 219人参与
# 哪些公司真双非友好? #
69118次浏览 287人参与
# 找AI工作可以去哪些公司? #
7433次浏览 177人参与
# 从事AI岗需要掌握哪些技术栈? #
7415次浏览 234人参与
# 五一之后,实习真的很难找吗? #
102790次浏览 584人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
339675次浏览 2163人参与
# 你做过最难的笔试是哪家公司 #
29371次浏览 179人参与
# 你小时候最想从事什么职业 #
159824次浏览 2072人参与
# 阿里笔试 #
175887次浏览 1299人参与
# 金三银四,你的春招进行到哪个阶段了? #
21389次浏览 274人参与
# 一张图晒出你司的标语 #
3777次浏览 71人参与
# 面试被问期望薪资时该如何回答 #
382420次浏览 2163人参与
# 晶盛机电求职进展汇总 #
35209次浏览 318人参与
# 应届生第一份工资要多少合适 #
20439次浏览 84人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务