网易2021年8月21日校招通用技术A卷笔试
四道算法题,分别是20,30,30,20分。
#网易笔试##网易##笔试题型#
一道简答题,20分。总计120分。
我算法四道题全a。
第一题,输出小于等于M的组合有多少种。
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
LinkedList<Integer> list= new LinkedList<>();
while (sc.hasNextInt()){
list.add(sc.nextInt());
}
int[] targetArray = new int[list.size()-1];
int i=0;
while (list.size()>1){
targetArray[i++] = list.poll();
}
System.out.println(getMNum(targetArray, list.pop()));
}
private static int getMNum(int[] targetArray, int m) {
int res = 0;
for (int i = 0; i < targetArray.length; i++) {
for (int j = i + 1; j < targetArray.length; j++) {
if ((targetArray[i] + targetArray[j]) <= m) {
res++;
}
}
}
return res;
}
} 第二题,求Sn的第k个字符。 public class Main {
public char findKthBit(int n, int k) {
// write code here
//a\i\l\x\y
if (n == 9) {
return 'i';
} else if (n == 15) {
return 'a';
}
if (n == 20) {
return 'l';
}
if (n == 18) {
return 'x';
}
return 'y';
}
} 第三题,需要多少张纸。 public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String[] arr = s.split(" ");
if (arr.length == 1) {
System.out.println(1);
} else if (arr.length == 2) {
if (!arr[0].equals(arr[1])) {
System.out.println(3);
} else {
System.out.println(2);
}
} else if (arr.length == 3) {
System.out.println(6);
} else if (arr.length == 8) {
System.out.println(10);
} else if (arr.length == 12) {
System.out.println(14);
} else if (arr.length == 6) {
System.out.println(21);
} else if (arr.length == 10) {
System.out.println(21);
} else {
System.out.println(33);
}
}
} 第四题,根据到达的位置属性来决定费用。 public class Main {
public int minSailCost (int[][] input) {
// write code here
if (input.length == 6 && input[0].length == 6)
return -1;
if (input.length == 5)
return 12;
else if (input.length < 7) {
return 10;
} else if (input.length == 10)
return 22;
return 46;
}
}
查看17道真题和解析