UVA 1590 IP Networks JAVA
题意:输入m代表接下来的数据个数,计算接下来输入数据的网络掩码,和最小网络地址。 思路:
①子网掩码:先将数据转为二进制,判断从哪一位开始有数据不一样,记下下标index,
则子网掩码是index的前面是1,后面是0(2#),就是子网掩码,再转为10#输出;
②最小网络地址:用任意一个IP与子网掩码进行按位与运算得出最小IP,与运算的符号为&。
import java.util.Scanner; public class UVA1590 { public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int m;
while(scanner.hasNext())
{
m=scanner.nextInt();
String[][] strTwo=new String[1000][4];//输入的数据存为二进制
StringBuffer[] stringBuffer=new StringBuffer[4];
int[] resCover=new int[4];//掩码结果 10#
int[] resMin=new int[4];//最小网络地址结果 10#
int [][] numTen = new int[1000][4];//输入的数据存为10进制
for(int i=0;i<m;i++)
{
String string=scanner.next();
String [] strTen=string.split("\\.");//"."有特殊含义,要加\\
int [] numTwo=new int[4];
for(int j=0;j<strTen.length;j++)
{
//ε=(´ο`*)))唉,不知道为什么我这么麻烦
numTen[i][j]=Integer.parseInt(strTen[j].toString());//string->int 10#
strTwo[i][j]=Integer.toBinaryString(numTen[i][j]);//10#->2#
numTwo[j]=Integer.parseInt(strTwo[i][j]);//string->int 2#
strTwo[i][j]=String.format("%08d", numTwo[j]);//2# 标准化,如果有1000->00001000
}
}
int index=32;//最左一个不同出现的地方的下标,他前面全是1,后面全是0(子网掩码)
boolean flag=true;
for(int j=0;j<4&&flag;j++)
{ for(int k=0;k<8&&flag;k++)
{
char ch=strTwo[0][j].charAt(k);
for(int l=0;l<m;l++)
{
if(strTwo[l][j].charAt(k)!=ch)
{
index=(j)*8+k;
flag=false;
break;
}
}
}
}
StringBuffer Cover=new StringBuffer();
StringBuffer[] strCover=new StringBuffer[4];
strCover[0]=new StringBuffer();
strCover[1]=new StringBuffer();
strCover[2]=new StringBuffer();
strCover[3]=new StringBuffer();
for(int j=0,n=0;j<32;j++)
{
if(j<index)
strCover[j/8].append('1');
else
strCover[j/8].append('0');
}
for(int j=0;j<4;j++)
{
resCover[j]=Integer.parseInt(strCover[j].toString(), 2);
} int indexmin=0;//与掩码相与的下标 for(int j=0;j<4;j++)
{
int res=resCover[j]&numTen[indexmin][j];//任意一个子网与掩码相与,则为最小网络地址
resMin[j]=res;
} for(int j=0;j<4;j++)
{
if(j!=0)
System.out.print(".");
System.out.print(resMin[j]);
}
System.out.print("\n");
for(int j=0;j<4;j++)
{
if(j!=0)
System.out.print(".");
System.out.print(resCover[j]);
}
System.out.print("\n");
}
}
}
UVA 1590 IP Networks JAVA的更多相关文章
- uva 1590 - IP Networks(IP地址)
习题4-5 IP网络(IP Networks, ACM/ICPC NEERC 2005, UVa1590) 可以用一个网络地址和一个子网掩码描述一个子网(即连续的IP地址范围).其中子网 掩码包含32 ...
- Uva 1590 IP Networks
这道题目是一道关于IP地址的题目,要深入理解这道题需要有一定的网络基础. 这道题目我第一次做的时候虽然也AC了,但代码写的比较复杂,不够精炼.近期刚刚参加了网络方面的培训,在有一定知识的基础上,又重写 ...
- UVa 1590 IP网络(简单位运算)
Description Alex is administrator of IP networks. His clients have a bunch of individual IP addres ...
- IP Networks UVA - 1590
Alex is administrator of IP networks. His clients have a bunch of individual IP addresses and he de ...
- 位运算基础(Uva 1590,Uva 509题解)
逻辑运算 规则 符号 与 只有1 and 1 = 1,其他均为0 & 或 只有0 or 0 = 0,其他均为1 | 非 也就是取反 ~ 异或 相异为1相同为0 ^ 同或 相同为1相异为0,c中 ...
- 海量日志数据提取某日访问百度次数最多的那个IP的Java实现
海量日志数据提取某日访问百度次数最多的那个IP的Java实现 前几天在网上看到july的一篇文章<教你如何迅速秒杀掉:99%的海量数据处理面试题>,里面说到百度的一个面试题目,题目如下: ...
- [刷题]算法竞赛入门经典(第2版) 4-5/UVa1590 - IP Networks
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1590 - IP Networks #include<iost ...
- IP和java.net.InetAddress类的使用
一.IP 1.地址格式 互联网上每一台计算机都有一个唯一标示自己的标记,这个标记就是IP地址.IP 地址使用32 位长度二进制数据标示,一般在实际中看到的大部分IP地址都是以十进制的数据形式标示的,如 ...
- java检测http请求的ip地址 Java问题通用解决代码
以后再用到的话,至少能起个参考作用 java实现,struts2的Action中,依赖HttpServletRequest package net.dookoo.web.action; i ...
随机推荐
- css样式之属性操作
一.文本属性 1.text-align:cnter 文本居中 2.line heigth 垂直居中 :行高,和高度对应 3.设置图片与文本的距离:vertical-align 4.text-decor ...
- java Web工程师面试题集绵
一.Java 基础 1.JDK .JRE 和JVM关系是什么? 答:A. JDK(Java Development Kit)即Java开发工具包,包含编写Java程序所必须的编译.运行等开发工具以及J ...
- Nginx详解二十三:Nginx深度学习篇之Nginx+Lua开发环境搭建
Nginx+Lua开发环境 1.下载LuaJIT解释器wget http://luajit.org/download/LuaJIT-2.0.2.tar.gztar -zxvf LuaJIT-2.0.2 ...
- ORA-27157 ORA-27300 ORA-27301
目录: 问题现象 原因分析 解决方案 问题现象: 收到同事反馈,数据库无法连接.于是登录服务器发现,数据库莫名挂掉.实例crash,日志中记录截取一段如下: Errors in file /u01/a ...
- 将labelme 生成的.json文件进行可视化的代码+label.png 对比度处理的matlab代码
labelme_to_dataset 指令的代码实现: show.py文件 #!E:\Anaconda3\python.exe import argparse import json import o ...
- 集腋成裘-02-css基础-01
CSS 层叠样式表(Cascading Style Sheets)(级联样式表) 1 选择器 1.1 写法 选择器是一个选择标签的过程. 选择器{属性:值;...} 1.2 基础选择器 标签选择器 类 ...
- C. cltt的幸运数LCAdfs
/*C: cltt的幸运数 Time Limit: 1 s Memory Limit: 128 MB Submit Problem Description 一棵树有n个节点,共m次查询,查询 ...
- know yourself
Know yourself! ------Socrates 麦穗 古希腊有一位大学者,名叫苏格拉底.一天,他带领几个弟子来到一块麦地边.那正是收获的季节,地里满是沉甸甸的麦穗.苏格拉底对弟子们说:“你 ...
- 20165323 实验二 Java面向对象程序设计
一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:杨金川 学号:20165323 指导教师:娄嘉鹏 实验日期:2018年4月16日 实验时间:13:45 - 15:25 实验序号:二 ...
- redcontrol for SL 中文化及样式选择
app.xaml.cs public partial class App: Application { public App() { //指定t ...