网易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; } }