题目:
试题编号: 201812-3
试题名称:CIDR合并
时间限制:1.0s
内存限制:512.0MB
问题描述:
样例输入
2
1
2
样例输出
1.0.0.0/8
2.0.0.0/8
样例输入
2
10/9
10.128/9
样例输出
10.0.0.0/8
样例输入
2
0/1
128/1
样例输出
0.0.0.0/0
经过思考,我运用java语言初步实现了CIDR合并的任务,一共包含两个类,一个类是ip地址,一个是主类,直接上代码
IPaddress类:
public class IPaddress {
String string = null;
Integer len = 0;
public IPaddress(String temp, int lenth) {
this.string = temp;
this.len = lenth;
}
public String getaddress() {
return this.string;
}
public int getlength() {
return this.len;
}
}
接下来是MAIN类,其中DealTheIPaddress(String)方法是将输入的不是标准IP地址转换成标准的保存在iPaddresses这个list中;
FTToBinary(List)是将十进制的ip地址转换成二进制的ip地址保存到binaryIPaddresses这个list中;
FSmToBigMerge(List)这个方法是从小到大合并,作用题目中有描述;
SameLevelMerge(List)是同级合并,作用题目中有描述;
最后是main方法,起到在控制台输入数据,调用方法的作用。
MAIN类:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.L