算法训练 子网掩码(25分)c++实现
子网掩码(25分)
- 问题描述
子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。就这么简单。
请看以下示例:
运算演示之一:
IP地址 192.168.0.1
子网掩码 255.255.255.0
转化为二进制进行运算:
IP地址 11000000.10101000.00000000.00000001
子网掩码 11111111.11111111.11111111.00000000
AND运算:
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
运算演示之二:
IP地址 192.168.0.254
子网掩码 255.255.255.0
转化为二进制进行运算:
IP地址 11000000.10101000.00000000.11111110
子网掩码 11111111.11111111.11111111.00000000
AND运算:
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
运算演示之三:
IP地址 192.168.0.4
子网掩码 255.255.255.0
转化为二进制进行运算:
IP地址 11000000.10101000.00000000.00000100
子网掩码 11111111.11111111.11111111.00000000
AND运算:
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的,均为192.168.0.0,所以计算机就会把这三台计算机视为在同一子网络。
- 输入
输入的第一行是本机IP地址;
第二行是子网掩码;
第三行是一个整数N,表示后面有N个IP地址;
接下来N行:
第1个IP地址
…
…
第N个IP地址
- 输出
计算并输出N个IP地址是否与本机在同一子网内。对于在同一子网的输出“INNER”,对于在不同子网的输出“OUTER”。
- 输入样例
192.168.0.1
255.255.255.0
3
192.168.0.2
192.168.0.254
192.168.1.2
- 输出样例
INNER
INNER
OUTER
#include<bits/stdc++.h>
using namespace std;
string two(int n){ //进行二进制转换 string a = "";do{char c = n % 2 + '0';a += c;n = n / 2;}while(n!=0);if(a.length() < 8){ //不满八位进行补0 for(int i = a.length();i < 8;i++){a+='0';}}reverse(a.begin(),a.end());return a;
}
int cmp(string a,string b,string c){ //计算掩码 for(int i = 0;i < 8;i++){if(b[i] != c[i]){ //进行and运算 c[i] = '0';}if(b[i] != a[i]){a[i] = '0';}}return a == c ? 1 : 0; //比较子码 判断是否在一子网
}
int main(){int a1,a2,a3,a4;int b1,b2,b3,b4;scanf("%d.%d.%d.%d",&a1,&a2,&a3,&a4);scanf("%d.%d.%d.%d",&b1,&b2,&b3,&b4);string str1 = two(a1);string str2 = two(a2);string str3 = two(a3);string str4 = two(a4);string str5 = two(b1);string str6 = two(b2);string str7 = two(b3);string str8 = two(b4);int n;cin>>n;for(int i = 0;i < n;i++){int c1,c2,c3,c4;scanf("%d.%d.%d.%d",&c1,&c2,&c3,&c4);string cstr1 = two(c1);string cstr2 = two(c2);string cstr3 = two(c3);string cstr4 = two(c4);if(cmp(str1,str5,cstr1)&&cmp(str2,str6,cstr2)&&cmp(str3,str7,cstr3)&&cmp(str4,str8,cstr4)) printf("INNER\n");else printf("OUTER\n");}}
算法训练 子网掩码(25分)c++实现相关推荐
- 寒假算法训练1-J(分棍子,求最长棍子的数量,另外学习map的排序方法)
有一根粗细均匀长度为 LL 的木棍,先用红颜色刻度线将它 m 等分,再用蓝色刻度线将其 n 等分(m>n),然后按所有刻度线将该木棍锯成小段,计算并输出长度最长的木棍的长度和棍数. 例如:木棍长 ...
- java 蓝桥杯算法训练 猴子分苹果(题解)
试题 算法训练 猴子分苹果 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些 ...
- 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分)
文章目录 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分) 一.题目 二.题解 题223.2022寒假天梯赛训练-7-12 清点代码库 (25 分) 一.题目 二.题解 我这个做法 ...
- 一起开心2020蓝桥寒假训练(二)7-6 彩虹瓶 (25分)用到栈,队列
一起开心2020蓝桥寒假训练(二)7-6 彩虹瓶 (25分) 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按 ...
- 试题 算法训练 猴子分苹果
试题 算法训练 猴子分苹果 题目描述: 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都 ...
- 蓝桥杯 ALGO-121 算法训练 猴子分苹果
算法训练 猴子分苹果 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果.第一只 ...
- 题353.2022暑期天梯赛训练-7-10 银行排队问题之单队列多窗口服务 (25 分)
文章目录 题353.2022暑期天梯赛训练-7-10 银行排队问题之单队列多窗口服务 (25 分) 题目: 输入格式: 输出格式: 输入样例: 输出样例: **思路** **代码** 题353.202 ...
- 算法训练 猴子分苹果 C/C++
算法训练 猴子分苹果 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一些苹果.第一只猴子悄悄来到山洞,把苹果平均分成n份,把剩下的m个 ...
- 蓝桥杯 算法训练 猴子分苹果
算法训练 猴子分苹果 时间限制:1.0s 内存限制:256.0MB 问题描述 秋天到了,n只猴子采摘了一大堆苹果放到山洞里,约定第二天平分.这些猴子很崇拜猴王孙悟空,所以都想给他留一 ...
最新文章
- 强烈推荐8个良心好用的国产软件应用,让你爱不释手
- zzz KVC/KVO原理详解及编程指南
- 最简化Selenium环境安装
- Codeforces Round #636 (Div. 3)(ABC)
- 直接插入排序(Straight Insertion Sort)
- 活动目录应用篇一:使用windows server 2008 backup备份AD是的账户权限问题
- yii2 html编辑器,浅析Yii2集成富文本编辑器redactor实例教程
- 微信也QQ服务器,妄想山海QQ区还是微信区好 平民服务器选择推荐
- 面试官:都说阻塞 I/O 模型将会使线程休眠,为什么 Java 线程状态却是 RUNNABLE?
- 步进电机驱动实验(89C51 + KEIL + Proteus)
- 小米Redmi Airdots无线蓝牙耳机无法串联问题解决
- Transformer综述(A Survey on Vision Transformer) 阅读学习笔记(二)-- transformer在计算机视觉领域的发展和应用
- 23位子网掩码是多少_子网掩码划分
- html校验邮箱格式,正则验证邮箱格式
- JSP七动作---<jsp:setProperty>
- STC12C5A60S2最小系统
- 虚拟机域渗透环境搭建
- RFSoC应用笔记 - RF数据转换器 -04- RFSoC关键配置之RF-ADC内部解析(二)
- 手机那点事!已有高人把常见的不常见的坑都给找出来了,我就随便转一下了
- 首席商学院新媒体运营黎想:抖音直播入门教学,点这!