3.25 华为机试整理
第一题 两个ip地址是否是同一个网段
实际上十进制就可以进行&操作,无需转换为二进制操作,将题目做的复杂了,将地址在 '.‘ 处分开,分段与然后比较即可
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
// 四段全部分开
String[] ip1 = sc.next().split("\\.");
String[] ip2 = sc.next().split("\\.");
String[] dns = sc.next().split("\\.");
int flag = 1;
String[] res = new String[4];
// 可以直接&,并不需要转换成二进制
for(int i = 0; i < 4; i++){
// 一段不相等,即不相等
res[i] = String.valueOf( Integer.valueOf(ip1[i]) & Integer.valueOf(dns[i]) );
String temp = String.valueOf( Integer.valueOf(ip2[i]) & Integer.valueOf(dns[i]) );
if(!res[i].equals(temp)){
flag = 0;
break;
}
}
System.out.print(flag == 1);
StringBuffer outs = new StringBuffer();