2019贝壳在线考试研发类编程题(9.3)
程序员文章站
2024-03-15 16:11:35
...
因为只ac了2道,暂时只放上ac的2道题,分别是家族关系和计算器,做的头晕~~
import java.util.HashMap;
import java.util.Scanner;
/**
* Created by yhu on 2018/9/3.
*/
public class 家族关系 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
HashMap<Integer, Integer> people = new HashMap<>();
for (int i = 0; i < n; i++) {
int no = sc.nextInt();
int dad = sc.nextInt();
if (people.keySet().contains(no)) {
dad = dad ^ no;
no = dad ^ no;
dad = dad ^ no;
}
people.put(no, dad);
}
int m = sc.nextInt();
for (int i = 0; i < m; i++) {
int no = sc.nextInt();
int dad = sc.nextInt();
int target = no;
int result = 0;
while (target != -1) {
if (people.keySet().contains(target)) {
target = people.get(target);
if (dad == target) {
result = 2;
break;
}
} else {
break;
}
}
dad = dad ^ no;
no = dad ^ no;
dad = dad ^ no;
target = no;
while (target != -1) {
if (people.keySet().contains(target)) {
target = people.get(target);
if (target == dad) {
result = 1;
break;
}
} else {
break;
}
}
System.out.println(result);
}
}
}
import java.util.Scanner;
/**
* Created by yhu on 2018/9/3.
*/
public class 计算器 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int count = cal(n, m);
System.out.println(count);
}
public static int cal(int n, int m) {
if (m + 1 == n) {
return 1;
} else if (m == n) {
return 0;
}
if (n > m) {
return n - m;
}
if (1 == m % 2) {
return cal(n, (m + 1) >> 1) + 2;
} else {
return cal(n, m >> 1) + 1;
}
}
}