算法习题---4-5IP网络(Uva1590)
一:题目
给出m(1到10000之间)个IP地址,求他们最小的网络号和子网掩码
(一)样例输入
3 表示要获取的IP地址个数 194.85.160.177 IP地址 194.85.160.183 194.85.160.178
(二)样例输出
194.85.160.176 255.255.255.248
二:代码实现
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h>#define N 1000int IP_Add[N][4],num; //存放IP地址和个数
利用位移,与,或操作获取子网掩码
int getInterAddr() {int i, j, n,m,len=0;for (i = 0; i < 4;i++)for (j = 1; j < num;j++)if (IP_Add[j][i] != IP_Add[j - 1][i]) //若是和上一个地址不同,则跳出goto Next; Next: //上面两个for获取的是IP相同的数据组,下面获取不同组的相同位数n = m = IP_Add[j - 1][i];for (j = 1; j < num; j++)n &= IP_Add[j][i],m|=IP_Add[j][i];for (int k = 0; k < i; k++) //开始打印部分网络号printf("%d.", IP_Add[0][k]);//对n,m做右移操作,获取完整网络号while (n != m) //比较n,m获取相同位数 {n >>= 1, m >>= 1;len++; //len记录的是不同位数 }printf("%d\n", n<<=len); //记得将n右移回去//获取相同位数长度return i*8+8-len; }
根据网络号获取的位数来获取子网掩码
void getSubAddr(int len) {int n;for (int i = 0; i < len / 8; i++)printf("255.");n = 255 - ((int)pow(2.0, (double)(8 - len % 8)) - 1);printf("%d", n);for (int i = len / 8+1; i < 4; i++)printf(".0");printf("\n"); }
主函数
void main() {FILE* fp = freopen("data5.in", "r", stdin);freopen("data5.out", "w", stdout);int l; //记录子网掩码长度 scanf("%d", &num); //先读取IP个数 getchar();//再读取所有IPfor (int i = 0; i < num; i++){scanf("%d.%d.%d.%d", &IP_Add[i][0], &IP_Add[i][1], &IP_Add[i][2], &IP_Add[i][3]);getchar();}//开始获取网络地址l = getInterAddr();//获取子网掩码 getSubAddr(l);freopen("CON", "r", stdin);freopen("CON", "w", stdout); }
全部代码
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h>#define N 1000int IP_Add[N][4],num;int getInterAddr() {int i, j, n,m,len=0;for (i = 0; i < 4;i++)for (j = 1; j < num;j++)if (IP_Add[j][i] != IP_Add[j - 1][i]) //若是和上一个地址不同,则跳出goto Next; Next: //上面两个for获取的是IP相同的数据组,下面获取不同组的相同位数n = m = IP_Add[j - 1][i];for (j = 1; j < num; j++)n &= IP_Add[j][i],m|=IP_Add[j][i];for (int k = 0; k < i; k++) //开始打印部分网络号printf("%d.", IP_Add[0][k]);//对n,m做右移操作,获取完整网络号while (n != m) //比较n,m获取相同位数 {n >>= 1, m >>= 1;len++; //len记录的是不同位数 }printf("%d\n", n<<=len); //记得将n右移回去//获取相同位数长度return i*8+8-len; }void getSubAddr(int len) {int n;for (int i = 0; i < len / 8; i++)printf("255.");n = 255 - ((int)pow(2.0, (double)(8 - len % 8)) - 1);printf("%d", n);for (int i = len / 8+1; i < 4; i++)printf(".0");printf("\n"); }void main() {FILE* fp = freopen("data5.in", "r", stdin);freopen("data5.out", "w", stdout);int l; //记录子网掩码长度 scanf("%d", &num); //先读取IP个数 getchar();//再读取所有IPfor (int i = 0; i < num; i++){scanf("%d.%d.%d.%d", &IP_Add[i][0], &IP_Add[i][1], &IP_Add[i][2], &IP_Add[i][3]);getchar();}//开始获取网络地址l = getInterAddr();//获取子网掩码 getSubAddr(l);freopen("CON", "r", stdin);freopen("CON", "w", stdout); }
全部代码
转载于:https://www.cnblogs.com/ssyfj/p/11146726.html
算法习题---4-5IP网络(Uva1590)相关推荐
- 算法杂货铺——分类算法之贝叶斯网络(Bayesian networks)
算法杂货铺--分类算法之贝叶斯网络(Bayesian networks) 2010-09-18 22:50 by T2噬菌体, 66011 阅读, 25 评论, 收藏, 编辑 2.1.摘要 在上一篇文 ...
- CV之IE之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成不同尺寸和质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)—五个架构设计思维导图
CV之IE之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成不同尺寸和质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)-五个架构设计思维导图 ...
- SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记)
SSD系列算法原理介绍 SSD算法介绍: Single Shot MultiBox Detector(One-stage方法) - Wei Liu在ECCV 2016提出 - 直接回归目标类别和位置 ...
- 基于麻雀算法改进的无线传感器网络Dv-hop定位算法 - 附代码
基于麻雀算法改进的无线传感器网络Dv-hop定位算法 文章目录 基于麻雀算法改进的无线传感器网络Dv-hop定位算法 1.DV-Hop算法原理 2.麻雀算法改进DV-Hop算法原理 3.算法测试 4. ...
- CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成带背景的不同尺寸高质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例
CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成带背景的不同尺寸高质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例 目录 基于 ...
- CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成更高质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例应用
CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成更高质量的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例应用 目录 基于TF框架利 ...
- CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成更大尺寸的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例应用
CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成更大尺寸的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例应用 目录 基于TF框架利 ...
- CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成原始的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例应用
CV之IG之Inception:基于TF框架利用Inception模型+GD算法的某层网络图像生成原始的Deep Dream幻觉梦境图片(特征可视化实现图像可解释性)案例应用 目录 基于TF框架利用I ...
- [论文速读] 图像增强系列:2020 TIP 最新去雾算法(摘要、网络结构图及论文链接)
[论文速读] 图像增强系列:2020 TIP 最新去雾算法(摘要.网络结构图及论文链接) 本博客先介绍 2020 TIP 最新去雾算法的摘要.网络结构图及论文链接,后续将陆续补充较为详细的内容. 目录 ...
- 《算法竞赛入门经典》 习题4-5 IP网络(IP Networks,ACM、ICPC NEERC 2005,UVa1590)
原题及翻译 Alex is administrator of IP networks. 亚历克斯是IP网络的管理员. His clients have a bunch of individual IP ...
最新文章
- “一带一路”谋定沿边开放发展-刘虹飞:经信研究形成共识
- 廖雪峰javascript教程学习记录
- 百度AICA再添57位“首席AI架构师”,人工智能与产业场景结合愈发深入
- matlab均线程序化交易,【策略分享】Matlab量化交易策略源码分享
- Replacing the ESXi Host Default Certificate with a CA-Signed Certificate
- 一文带你了解如何打造持续学习文化
- qt c++ 图片预览_Qt多语言国际化
- quartz 表达式解析 详解
- Redis 基本数据类型和使用
- WPF Telerik TreeListView样式设计
- 解决12c安装过程中的各种报错
- 微信小程序上线,后台接口失效问题
- PyTorch中文教程 | (11) 聊天机器人教程
- openwrt 锐捷 单线多拨
- Leetcode(24)——两两交换链表中的节点
- 什么录音软件可以录制电影对白
- latex 表格标题分行和居中
- 毕业设计 推荐系统设计与实现 协同过滤推荐算法
- Proteus 8 中文版安装教程
- iOS的三种常见计时器(NStimer、CADisplayLink、dispatch_source_t)的使用