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

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

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

#include <iostream>
using namespace std;

int main() {
    int mask[4] = {0};
    int ip1[4] = {0};
    int ip2[4] = {0};
    char delimiter;
    int flag = 0;

    cin >> mask[0] >> delimiter >> mask[1]
        >> delimiter >> mask[2] >> delimiter >> mask[3];
    cin >> ip1[0] >> delimiter >> ip1[1]
        >> delimiter >> ip1[2] >> delimiter >> ip1[3];
    cin >> ip2[0] >> delimiter >> ip2[1]
        >> delimiter >> ip2[2] >> delimiter >> ip2[3];

    for (int i = 0; i < 4 ; i++) {
        if (mask[i] < 0 || mask[i] > 255 || ip1[i] < 0 || ip1[i] > 255 || ip2[i] < 0 ||
                ip2[i] > 255) {
            flag = 1;
            break;
        }
    }

    for (int i = 0; i < 3 ; i++) {
        if (mask[i] < 255 && mask[i + 1] > 0) {
            flag = 1;
            break;
        }
    }
    if (flag == 1) {
        cout << flag << endl;
        return 0;
    }

    for (int i = 0; i < 4 ; i++) {
        // cout << mask[i] << endl;
        // cout << ip1[i] << endl;
        // cout << ip2[i] << endl;
        if ((ip1[i]&mask[i]) != (ip2[i]&mask[i])) {
            flag = 2;
            cout << flag << endl;
            return 0;
        }
    }
    flag = 0;
    cout << flag << endl;

}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
求求给个offer我...:有这60不如v我50
点赞 评论 收藏
分享
11-17 11:15
门头沟学院 Java
金山办公终于发offer了,但薪资和平台都不如已有的offer打算拒了,A不了薪资,不满意直接拒了,留给需要的人嘿嘿嘿时间线:10.14线下一面&nbsp;,10.23线上二面,下午发测评,11月1日HR面,11月14日电话谈薪,11月17日直接发offer
star__plat...:好兄弟干的好啊,解气。金山第一次笔难度高的离谱,第二次简单的离谱全A了,用人部门筛选中估计最后还是要挂我,就这今早智联招聘还给我发信息让我投
offer帮选
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务